mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-07-17 18:38:12 +00:00
AS3: Editing exceptions
This commit is contained in:
Binary file not shown.
3
trunk/libsrc/jpproxy/manifest.mf
Normal file
3
trunk/libsrc/jpproxy/manifest.mf
Normal file
@@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
X-COMMENT: Main-Class will be added automatically by build
|
||||
|
||||
74
trunk/libsrc/jpproxy/nbbuild.xml
Normal file
74
trunk/libsrc/jpproxy/nbbuild.xml
Normal file
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- You may freely edit this file. See commented blocks below for -->
|
||||
<!-- some examples of how to customize the build. -->
|
||||
<!-- (If you delete it and reopen the project it will be recreated.) -->
|
||||
<!-- By default, only the Clean and Build commands use this build script. -->
|
||||
<!-- Commands such as Run, Debug, and Test only use this build script if -->
|
||||
<!-- the Compile on Save feature is turned off for the project. -->
|
||||
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
|
||||
<!-- in the project's Project Properties dialog box.-->
|
||||
<project name="JPProxy" default="default" basedir=".">
|
||||
<description>Builds, tests, and runs the project JPProxy.</description>
|
||||
<import file="nbproject/build-impl.xml"/>
|
||||
<!--
|
||||
|
||||
There exist several targets which are by default empty and which can be
|
||||
used for execution of your tasks. These targets are usually executed
|
||||
before and after some main targets. They are:
|
||||
|
||||
-pre-init: called before initialization of project properties
|
||||
-post-init: called after initialization of project properties
|
||||
-pre-compile: called before javac compilation
|
||||
-post-compile: called after javac compilation
|
||||
-pre-compile-single: called before javac compilation of single file
|
||||
-post-compile-single: called after javac compilation of single file
|
||||
-pre-compile-test: called before javac compilation of JUnit tests
|
||||
-post-compile-test: called after javac compilation of JUnit tests
|
||||
-pre-compile-test-single: called before javac compilation of single JUnit test
|
||||
-post-compile-test-single: called after javac compilation of single JUunit test
|
||||
-pre-jar: called before JAR building
|
||||
-post-jar: called after JAR building
|
||||
-post-clean: called after cleaning build products
|
||||
|
||||
(Targets beginning with '-' are not intended to be called on their own.)
|
||||
|
||||
Example of inserting an obfuscator after compilation could look like this:
|
||||
|
||||
<target name="-post-compile">
|
||||
<obfuscate>
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
</obfuscate>
|
||||
</target>
|
||||
|
||||
For list of available properties check the imported
|
||||
nbproject/build-impl.xml file.
|
||||
|
||||
|
||||
Another way to customize the build is by overriding existing main targets.
|
||||
The targets of interest are:
|
||||
|
||||
-init-macrodef-javac: defines macro for javac compilation
|
||||
-init-macrodef-junit: defines macro for junit execution
|
||||
-init-macrodef-debug: defines macro for class debugging
|
||||
-init-macrodef-java: defines macro for class execution
|
||||
-do-jar-with-manifest: JAR building (if you are using a manifest)
|
||||
-do-jar-without-manifest: JAR building (if you are not using a manifest)
|
||||
run: execution of project
|
||||
-javadoc-build: Javadoc generation
|
||||
test-report: JUnit report generation
|
||||
|
||||
An example of overriding the target for project execution could look like this:
|
||||
|
||||
<target name="run" depends="JPProxy-impl.jar">
|
||||
<exec dir="bin" executable="launcher.exe">
|
||||
<arg file="${dist.jar}"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
Notice that the overridden target depends on the jar target and not only on
|
||||
the compile target as the regular run target does. Again, for a list of available
|
||||
properties which you can use, check the target you are overriding in the
|
||||
nbproject/build-impl.xml file.
|
||||
|
||||
-->
|
||||
</project>
|
||||
880
trunk/libsrc/jpproxy/nbproject/build-impl.xml
Normal file
880
trunk/libsrc/jpproxy/nbproject/build-impl.xml
Normal file
@@ -0,0 +1,880 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
*** GENERATED FROM project.xml - DO NOT EDIT ***
|
||||
*** EDIT ../build.xml INSTEAD ***
|
||||
|
||||
For the purpose of easier reading the script
|
||||
is divided into following sections:
|
||||
|
||||
- initialization
|
||||
- compilation
|
||||
- jar
|
||||
- execution
|
||||
- debugging
|
||||
- javadoc
|
||||
- junit compilation
|
||||
- junit execution
|
||||
- junit debugging
|
||||
- applet
|
||||
- cleanup
|
||||
|
||||
-->
|
||||
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="JPProxy-impl">
|
||||
<fail message="Please build using Ant 1.7.1 or higher.">
|
||||
<condition>
|
||||
<not>
|
||||
<antversion atleast="1.7.1"/>
|
||||
</not>
|
||||
</condition>
|
||||
</fail>
|
||||
<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
|
||||
<!--
|
||||
======================
|
||||
INITIALIZATION SECTION
|
||||
======================
|
||||
-->
|
||||
<target name="-pre-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="-pre-init" name="-init-private">
|
||||
<property file="nbproject/private/config.properties"/>
|
||||
<property file="nbproject/private/configs/${config}.properties"/>
|
||||
<property file="nbproject/private/private.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private" name="-init-user">
|
||||
<property file="${user.properties.file}"/>
|
||||
<!-- The two properties below are usually overridden -->
|
||||
<!-- by the active platform. Just a fallback. -->
|
||||
<property name="default.javac.source" value="1.4"/>
|
||||
<property name="default.javac.target" value="1.4"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
|
||||
<property file="nbproject/configs/${config}.properties"/>
|
||||
<property file="nbproject/project.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
|
||||
<available file="${manifest.file}" property="manifest.available"/>
|
||||
<available file="${application.splash}" property="splashscreen.available"/>
|
||||
<condition property="main.class.available">
|
||||
<and>
|
||||
<isset property="main.class"/>
|
||||
<not>
|
||||
<equals arg1="${main.class}" arg2="" trim="true"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
<isset property="main.class.available"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.mkdist">
|
||||
<and>
|
||||
<isset property="libs.CopyLibs.classpath"/>
|
||||
<not>
|
||||
<istrue value="${mkdist.disabled}"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class+mkdist.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<isset property="do.mkdist"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class+mkdist.available+splashscreen.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available}"/>
|
||||
<istrue value="${splashscreen.available}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive">
|
||||
<not>
|
||||
<istrue value="${jar.archive.disabled}"/>
|
||||
</not>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class+mkdist.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available}"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available+splashscreen.available}"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="have.tests">
|
||||
<or/>
|
||||
</condition>
|
||||
<condition property="have.sources">
|
||||
<or>
|
||||
<available file="${src.dir}"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="netbeans.home+have.tests">
|
||||
<and>
|
||||
<isset property="netbeans.home"/>
|
||||
<isset property="have.tests"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="no.javadoc.preview">
|
||||
<and>
|
||||
<isset property="javadoc.preview"/>
|
||||
<isfalse value="${javadoc.preview}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="run.jvmargs" value=""/>
|
||||
<property name="javac.compilerargs" value=""/>
|
||||
<property name="work.dir" value="${basedir}"/>
|
||||
<condition property="no.deps">
|
||||
<and>
|
||||
<istrue value="${no.dependencies}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="javac.debug" value="true"/>
|
||||
<property name="javadoc.preview" value="true"/>
|
||||
<property name="application.args" value=""/>
|
||||
<property name="source.encoding" value="${file.encoding}"/>
|
||||
<property name="runtime.encoding" value="${source.encoding}"/>
|
||||
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
|
||||
<and>
|
||||
<isset property="javadoc.encoding"/>
|
||||
<not>
|
||||
<equals arg1="${javadoc.encoding}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="javadoc.encoding.used" value="${source.encoding}"/>
|
||||
<property name="includes" value="**"/>
|
||||
<property name="excludes" value=""/>
|
||||
<property name="do.depend" value="false"/>
|
||||
<condition property="do.depend.true">
|
||||
<istrue value="${do.depend}"/>
|
||||
</condition>
|
||||
<path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
|
||||
<condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
|
||||
<length length="0" string="${endorsed.classpath}" when="greater"/>
|
||||
</condition>
|
||||
<property name="javac.fork" value="false"/>
|
||||
<property name="jar.index" value="false"/>
|
||||
<available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
|
||||
</target>
|
||||
<target name="-post-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
|
||||
<fail unless="src.dir">Must set src.dir</fail>
|
||||
<fail unless="build.dir">Must set build.dir</fail>
|
||||
<fail unless="dist.dir">Must set dist.dir</fail>
|
||||
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
|
||||
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
|
||||
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
|
||||
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
|
||||
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
|
||||
<fail unless="dist.jar">Must set dist.jar</fail>
|
||||
</target>
|
||||
<target name="-init-macrodef-property">
|
||||
<macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute name="name"/>
|
||||
<attribute name="value"/>
|
||||
<sequential>
|
||||
<property name="@{name}" value="${@{value}}"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
|
||||
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<attribute default="${javac.processorpath}" name="processorpath"/>
|
||||
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="${empty.dir}" name="sourcepath"/>
|
||||
<attribute default="${empty.dir}" name="gensrcdir"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<property location="${build.dir}/empty" name="empty.dir"/>
|
||||
<mkdir dir="${empty.dir}"/>
|
||||
<mkdir dir="@{apgeneratedsrcdir}"/>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
|
||||
<src>
|
||||
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</src>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.compilerargs}"/>
|
||||
<compilerarg value="-processorpath"/>
|
||||
<compilerarg path="@{processorpath}:${empty.dir}"/>
|
||||
<compilerarg line="${ap.processors.internal}"/>
|
||||
<compilerarg line="${annotation.processing.processor.options}"/>
|
||||
<compilerarg value="-s"/>
|
||||
<compilerarg path="@{apgeneratedsrcdir}"/>
|
||||
<compilerarg line="${ap.proc.none.internal}"/>
|
||||
<customize/>
|
||||
</javac>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
|
||||
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<attribute default="${javac.processorpath}" name="processorpath"/>
|
||||
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="${empty.dir}" name="sourcepath"/>
|
||||
<attribute default="${empty.dir}" name="gensrcdir"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<property location="${build.dir}/empty" name="empty.dir"/>
|
||||
<mkdir dir="${empty.dir}"/>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
|
||||
<src>
|
||||
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</src>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.compilerargs}"/>
|
||||
<customize/>
|
||||
</javac>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
|
||||
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<sequential>
|
||||
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
</depend>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<sequential>
|
||||
<fail unless="javac.includes">Must set javac.includes</fail>
|
||||
<pathconvert pathsep="," property="javac.includes.binary">
|
||||
<path>
|
||||
<filelist dir="@{destdir}" files="${javac.includes}"/>
|
||||
</path>
|
||||
<globmapper from="*.java" to="*.class"/>
|
||||
</pathconvert>
|
||||
<delete>
|
||||
<files includes="${javac.includes.binary}"/>
|
||||
</delete>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-junit">
|
||||
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="**" name="testincludes"/>
|
||||
<sequential>
|
||||
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
|
||||
<batchtest todir="${build.test.results.dir}"/>
|
||||
<classpath>
|
||||
<path path="${run.test.classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<formatter type="brief" usefile="false"/>
|
||||
<formatter type="xml"/>
|
||||
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
</junit>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
|
||||
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="name"/>
|
||||
<attribute default="${debug.classpath}" name="classpath"/>
|
||||
<attribute default="" name="stopclassname"/>
|
||||
<sequential>
|
||||
<nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
</nbjpdastart>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${build.classes.dir}" name="dir"/>
|
||||
<sequential>
|
||||
<nbjpdareload>
|
||||
<fileset dir="@{dir}" includes="${fix.classes}">
|
||||
<include name="${fix.includes}*.class"/>
|
||||
</fileset>
|
||||
</nbjpdareload>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-debug-args">
|
||||
<property name="version-output" value="java version "${ant.java.version}"/>
|
||||
<condition property="have-jdk-older-than-1.4">
|
||||
<or>
|
||||
<contains string="${version-output}" substring="java version "1.0"/>
|
||||
<contains string="${version-output}" substring="java version "1.1"/>
|
||||
<contains string="${version-output}" substring="java version "1.2"/>
|
||||
<contains string="${version-output}" substring="java version "1.3"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
|
||||
<istrue value="${have-jdk-older-than-1.4}"/>
|
||||
</condition>
|
||||
<condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
|
||||
<isset property="debug.transport"/>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-debug-args" name="-init-macrodef-debug">
|
||||
<macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<attribute default="${debug.classpath}" name="classpath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<jvmarg line="${debug-args-line}"/>
|
||||
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
|
||||
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
|
||||
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
<mapper from="run-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<customize/>
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-java">
|
||||
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<attribute default="${run.classpath}" name="classpath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
|
||||
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
<mapper from="run-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<customize/>
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-copylibs">
|
||||
<macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to=""/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep=" " property="jar.classpath">
|
||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||
<chainedmapper>
|
||||
<flattenmapper/>
|
||||
<globmapper from="*" to="lib/*"/>
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
<customize/>
|
||||
</manifest>
|
||||
</copylibs>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-presetdef-jar">
|
||||
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
|
||||
<j2seproject1:fileset dir="${build.classes.dir}"/>
|
||||
</jar>
|
||||
</presetdef>
|
||||
</target>
|
||||
<target name="-init-ap-cmdline-properties">
|
||||
<property name="annotation.processing.enabled" value="true"/>
|
||||
<property name="annotation.processing.processors.list" value=""/>
|
||||
<property name="annotation.processing.processor.options" value=""/>
|
||||
<property name="annotation.processing.run.all.processors" value="true"/>
|
||||
<property name="javac.processorpath" value="${javac.classpath}"/>
|
||||
<property name="javac.test.processorpath" value="${javac.test.classpath}"/>
|
||||
<condition property="ap.supported.internal" value="true">
|
||||
<not>
|
||||
<matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
|
||||
</not>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
|
||||
<condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
|
||||
<isfalse value="${annotation.processing.run.all.processors}"/>
|
||||
</condition>
|
||||
<condition else="" property="ap.proc.none.internal" value="-proc:none">
|
||||
<isfalse value="${annotation.processing.enabled}"/>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
|
||||
<property name="ap.cmd.line.internal" value=""/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
|
||||
<!--
|
||||
===================
|
||||
COMPILATION SECTION
|
||||
===================
|
||||
-->
|
||||
<target name="-deps-jar-init" unless="built-jar.properties">
|
||||
<property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
|
||||
<delete file="${built-jar.properties}" quiet="true"/>
|
||||
</target>
|
||||
<target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
|
||||
<echo level="warn" message="Cycle detected: JPProxy was already built"/>
|
||||
</target>
|
||||
<target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
|
||||
<mkdir dir="${build.dir}"/>
|
||||
<touch file="${built-jar.properties}" verbose="false"/>
|
||||
<property file="${built-jar.properties}" prefix="already.built.jar."/>
|
||||
<antcall target="-warn-already-built-jar"/>
|
||||
<propertyfile file="${built-jar.properties}">
|
||||
<entry key="${basedir}" value=""/>
|
||||
</propertyfile>
|
||||
</target>
|
||||
<target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
|
||||
<target depends="init" name="-check-automatic-build">
|
||||
<available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
|
||||
</target>
|
||||
<target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
|
||||
<antcall target="clean"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar" name="-pre-pre-compile">
|
||||
<mkdir dir="${build.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-depend">
|
||||
<pathconvert property="build.generated.subdirs">
|
||||
<dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</pathconvert>
|
||||
<j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
|
||||
<j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
|
||||
<copy todir="${build.classes.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target if="has.persistence.xml" name="-copy-persistence-xml">
|
||||
<mkdir dir="${build.classes.dir}/META-INF"/>
|
||||
<copy todir="${build.classes.dir}/META-INF">
|
||||
<fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
|
||||
<target name="-pre-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile/>
|
||||
<j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
|
||||
<!--
|
||||
====================
|
||||
JAR BUILDING SECTION
|
||||
====================
|
||||
-->
|
||||
<target depends="init" name="-pre-pre-jar">
|
||||
<dirname file="${dist.jar}" property="dist.jar.dir"/>
|
||||
<mkdir dir="${dist.jar.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available">
|
||||
<j2seproject1:jar/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
|
||||
<j2seproject1:jar manifest="${manifest.file}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
|
||||
<j2seproject1:jar manifest="${manifest.file}">
|
||||
<j2seproject1:manifest>
|
||||
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
|
||||
</j2seproject1:manifest>
|
||||
</j2seproject1:jar>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<pathconvert property="run.classpath.with.dist.jar">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
|
||||
</pathconvert>
|
||||
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available" name="-do-jar-with-libraries-and-splashscreen">
|
||||
<basename file="${application.splash}" property="splashscreen.basename"/>
|
||||
<mkdir dir="${build.classes.dir}/META-INF"/>
|
||||
<copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
|
||||
<j2seproject3:copylibs>
|
||||
<customize>
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
<attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
|
||||
</customize>
|
||||
</j2seproject3:copylibs>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo>java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries" unless="splashscreen.available">
|
||||
<j2seproject3:copylibs>
|
||||
<customize>
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
</customize>
|
||||
</j2seproject3:copylibs>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo>java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target name="-post-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
|
||||
<!--
|
||||
=================
|
||||
EXECUTION SECTION
|
||||
=================
|
||||
-->
|
||||
<target depends="init,compile" description="Run a main class." name="run">
|
||||
<j2seproject1:java>
|
||||
<customize>
|
||||
<arg line="${application.args}"/>
|
||||
</customize>
|
||||
</j2seproject1:java>
|
||||
</target>
|
||||
<target name="-do-not-recompile">
|
||||
<property name="javac.includes.binary" value=""/>
|
||||
</target>
|
||||
<target depends="init,compile-single" name="run-single">
|
||||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single" name="run-test-with-main">
|
||||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
|
||||
</target>
|
||||
<!--
|
||||
=================
|
||||
DEBUGGING SECTION
|
||||
=================
|
||||
-->
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
|
||||
<j2seproject1:nbjpdastart name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
|
||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile" name="-debug-start-debuggee">
|
||||
<j2seproject3:debug>
|
||||
<customize>
|
||||
<arg line="${application.args}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
|
||||
<j2seproject1:nbjpdastart stopclassname="${main.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
|
||||
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
|
||||
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
|
||||
<j2seproject3:debug classname="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
|
||||
<target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
|
||||
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
|
||||
<j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
|
||||
<target depends="init" name="-pre-debug-fix">
|
||||
<fail unless="fix.includes">Must set fix.includes</fail>
|
||||
<property name="javac.includes" value="${fix.includes}.java"/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
|
||||
<j2seproject1:nbjpdareload/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
|
||||
<!--
|
||||
===============
|
||||
JAVADOC SECTION
|
||||
===============
|
||||
-->
|
||||
<target depends="init" if="have.sources" name="-javadoc-build">
|
||||
<mkdir dir="${dist.javadoc.dir}"/>
|
||||
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
|
||||
<classpath>
|
||||
<path path="${javac.classpath}"/>
|
||||
</classpath>
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
<filename name="**/*.java"/>
|
||||
</fileset>
|
||||
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="**/*.java"/>
|
||||
</fileset>
|
||||
</javadoc>
|
||||
<copy todir="${dist.javadoc.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
<filename name="**/doc-files/**"/>
|
||||
</fileset>
|
||||
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="**/doc-files/**"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
|
||||
<nbbrowse file="${dist.javadoc.dir}/index.html"/>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
|
||||
<!--
|
||||
=========================
|
||||
JUNIT COMPILATION SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
|
||||
<mkdir dir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-test-depend">
|
||||
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir=""/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir=""/>
|
||||
<copy todir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
|
||||
<target name="-pre-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="" srcdir=""/>
|
||||
<copy todir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
|
||||
<!--
|
||||
=======================
|
||||
JUNIT EXECUTION SECTION
|
||||
=======================
|
||||
-->
|
||||
<target depends="init" if="have.tests" name="-pre-test-run">
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
|
||||
<j2seproject3:junit testincludes="**/*Test.java"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
|
||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init" if="have.tests" name="test-report"/>
|
||||
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
|
||||
<target depends="init" if="have.tests" name="-pre-test-run-single">
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
|
||||
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
|
||||
<j2seproject3:junit excludes="" includes="${test.includes}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
|
||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
|
||||
<!--
|
||||
=======================
|
||||
JUNIT DEBUGGING SECTION
|
||||
=======================
|
||||
-->
|
||||
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
|
||||
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
|
||||
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
|
||||
<delete file="${test.report.file}"/>
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
|
||||
<customize>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<arg value="${test.class}"/>
|
||||
<arg value="showoutput=true"/>
|
||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
|
||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
|
||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
|
||||
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
|
||||
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
|
||||
<!--
|
||||
=========================
|
||||
APPLET EXECUTION SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile-single" name="run-applet">
|
||||
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||
<j2seproject1:java classname="sun.applet.AppletViewer">
|
||||
<customize>
|
||||
<arg value="${applet.url}"/>
|
||||
</customize>
|
||||
</j2seproject1:java>
|
||||
</target>
|
||||
<!--
|
||||
=========================
|
||||
APPLET DEBUGGING SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
|
||||
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||
<j2seproject3:debug classname="sun.applet.AppletViewer">
|
||||
<customize>
|
||||
<arg value="${applet.url}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
|
||||
<!--
|
||||
===============
|
||||
CLEANUP SECTION
|
||||
===============
|
||||
-->
|
||||
<target name="-deps-clean-init" unless="built-clean.properties">
|
||||
<property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
|
||||
<delete file="${built-clean.properties}" quiet="true"/>
|
||||
</target>
|
||||
<target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
|
||||
<echo level="warn" message="Cycle detected: JPProxy was already built"/>
|
||||
</target>
|
||||
<target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
|
||||
<mkdir dir="${build.dir}"/>
|
||||
<touch file="${built-clean.properties}" verbose="false"/>
|
||||
<property file="${built-clean.properties}" prefix="already.built.clean."/>
|
||||
<antcall target="-warn-already-built-clean"/>
|
||||
<propertyfile file="${built-clean.properties}">
|
||||
<entry key="${basedir}" value=""/>
|
||||
</propertyfile>
|
||||
</target>
|
||||
<target depends="init" name="-do-clean">
|
||||
<delete dir="${build.dir}"/>
|
||||
<delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
|
||||
</target>
|
||||
<target name="-post-clean">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
|
||||
<target name="-check-call-dep">
|
||||
<property file="${call.built.properties}" prefix="already.built."/>
|
||||
<condition property="should.call.dep">
|
||||
<not>
|
||||
<isset property="already.built.${call.subproject}"/>
|
||||
</not>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
|
||||
<ant antfile="${call.script}" inheritall="false" target="${call.target}">
|
||||
<propertyset>
|
||||
<propertyref prefix="transfer."/>
|
||||
<mapper from="transfer.*" to="*" type="glob"/>
|
||||
</propertyset>
|
||||
</ant>
|
||||
</target>
|
||||
</project>
|
||||
8
trunk/libsrc/jpproxy/nbproject/genfiles.properties
Normal file
8
trunk/libsrc/jpproxy/nbproject/genfiles.properties
Normal file
@@ -0,0 +1,8 @@
|
||||
nbbuild.xml.data.CRC32=0a5363c8
|
||||
nbbuild.xml.script.CRC32=e4148738
|
||||
nbbuild.xml.stylesheet.CRC32=28e38971@1.38.2.45
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=0a5363c8
|
||||
nbproject/build-impl.xml.script.CRC32=dee28151
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=f33e10ff@1.38.2.45
|
||||
74
trunk/libsrc/jpproxy/nbproject/project.properties
Normal file
74
trunk/libsrc/jpproxy/nbproject/project.properties
Normal file
@@ -0,0 +1,74 @@
|
||||
annotation.processing.enabled=true
|
||||
annotation.processing.enabled.in.editor=false
|
||||
annotation.processing.run.all.processors=true
|
||||
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
|
||||
application.title=JPProxy
|
||||
application.vendor=JPEXS
|
||||
build.classes.dir=${build.dir}/classes
|
||||
build.classes.excludes=**/*.java,**/*.form
|
||||
# This directory is removed when the project is cleaned:
|
||||
build.dir=build
|
||||
build.generated.dir=${build.dir}/generated
|
||||
build.generated.sources.dir=${build.dir}/generated-sources
|
||||
# Only compile against the classpath explicitly listed here:
|
||||
build.sysclasspath=ignore
|
||||
build.test.classes.dir=${build.dir}/test/classes
|
||||
build.test.results.dir=${build.dir}/test/results
|
||||
buildfile=nbbuild.xml
|
||||
# Uncomment to specify the preferred debugger connection transport:
|
||||
#debug.transport=dt_socket
|
||||
debug.classpath=\
|
||||
${run.classpath}
|
||||
debug.test.classpath=\
|
||||
${run.test.classpath}
|
||||
# This directory is removed when the project is cleaned:
|
||||
dist.dir=dist
|
||||
dist.jar=${dist.dir}/JPProxy.jar
|
||||
dist.javadoc.dir=${dist.dir}/javadoc
|
||||
endorsed.classpath=
|
||||
excludes=
|
||||
file.reference.jpproxy-src=src
|
||||
includes=**
|
||||
jar.compress=false
|
||||
javac.classpath=
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
javac.processorpath=\
|
||||
${javac.classpath}
|
||||
javac.source=1.5
|
||||
javac.target=1.5
|
||||
javac.test.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}:\
|
||||
${libs.junit.classpath}:\
|
||||
${libs.junit_4.classpath}
|
||||
javac.test.processorpath=\
|
||||
${javac.test.classpath}
|
||||
javadoc.additionalparam=
|
||||
javadoc.author=false
|
||||
javadoc.encoding=${source.encoding}
|
||||
javadoc.noindex=false
|
||||
javadoc.nonavbar=false
|
||||
javadoc.notree=false
|
||||
javadoc.private=false
|
||||
javadoc.splitindex=true
|
||||
javadoc.use=true
|
||||
javadoc.version=false
|
||||
javadoc.windowtitle=
|
||||
main.class=com.jpexs.proxy.Main
|
||||
manifest.file=manifest.mf
|
||||
meta.inf.dir=${src.dir}/META-INF
|
||||
platform.active=default_platform
|
||||
run.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}
|
||||
# Space-separated list of JVM arguments used when running the project
|
||||
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
|
||||
# or test-sys-prop.name=value to set system properties for unit tests):
|
||||
run.jvmargs=
|
||||
run.test.classpath=\
|
||||
${javac.test.classpath}:\
|
||||
${build.test.classes.dir}
|
||||
source.encoding=UTF-8
|
||||
src.dir=${file.reference.jpproxy-src}
|
||||
13
trunk/libsrc/jpproxy/nbproject/project.xml
Normal file
13
trunk/libsrc/jpproxy/nbproject/project.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||
<type>org.netbeans.modules.java.j2seproject</type>
|
||||
<configuration>
|
||||
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<name>JPProxy</name>
|
||||
<source-roots>
|
||||
<root id="src.dir"/>
|
||||
</source-roots>
|
||||
<test-roots/>
|
||||
</data>
|
||||
</configuration>
|
||||
</project>
|
||||
@@ -56,7 +56,8 @@ Label = {Identifier}:
|
||||
|
||||
/* integer literals */
|
||||
NumberLiteral = 0 | -?[1-9][0-9]*
|
||||
|
||||
PositiveNumberLiteral = 0 | [1-9][0-9]*
|
||||
|
||||
/* floating point literals */
|
||||
FloatLiteral = -?({FLit1}|{FLit2}|{FLit3}) {Exponent}?
|
||||
|
||||
@@ -73,6 +74,10 @@ Comment = ";" {InputCharacter}* {LineTerminator}?
|
||||
/* string and character literals */
|
||||
StringCharacter = [^\r\n\"\\]
|
||||
|
||||
ExceptionStart = "exceptionstart"{PositiveNumberLiteral}":"
|
||||
ExceptionEnd = "exceptionend "{PositiveNumberLiteral}":"
|
||||
ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":"
|
||||
|
||||
%state STRING,PARAMETERS
|
||||
|
||||
%%
|
||||
@@ -83,6 +88,17 @@ StringCharacter = [^\r\n\"\\]
|
||||
/* whitespace */
|
||||
{WhiteSpace} { }
|
||||
|
||||
{ExceptionStart} {
|
||||
return token(TokenType.KEYWORD);
|
||||
}
|
||||
{ExceptionEnd} {
|
||||
return token(TokenType.KEYWORD);
|
||||
}
|
||||
{ExceptionTarget} {
|
||||
return token(TokenType.KEYWORD);
|
||||
}
|
||||
|
||||
|
||||
{Label} {return token(TokenType.IDENTIFIER,yychar,yylength()-1); }
|
||||
|
||||
/* identifiers */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* The following code was generated by JFlex 1.4.3 on 18.8.10 12:21 */
|
||||
/* The following code was generated by JFlex 1.4.3 on 19.9.10 13:44 */
|
||||
|
||||
/* Flash assembler language lexer specification */
|
||||
|
||||
@@ -12,7 +12,7 @@ import jsyntaxpane.TokenType;
|
||||
/**
|
||||
* This class is a scanner generated by
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3
|
||||
* on 18.8.10 12:21 from the specification file
|
||||
* on 19.9.10 13:44 from the specification file
|
||||
* <tt>D:/Dokumenty/Programovani/JavaSE/ASDec/trunk/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3.flex</tt>
|
||||
*/
|
||||
public final class Flasm3Lexer extends DefaultJFlexLexer {
|
||||
@@ -42,92 +42,93 @@ public final class Flasm3Lexer extends DefaultJFlexLexer {
|
||||
* Translates characters to character classes
|
||||
*/
|
||||
private static final String ZZ_CMAP_PACKED =
|
||||
"\11\11\1\3\1\2\1\0\1\3\1\1\16\11\4\0\1\3\1\0"+
|
||||
"\1\26\1\0\1\10\6\0\1\22\1\0\1\16\1\17\1\0\1\15"+
|
||||
"\3\15\4\23\2\6\1\14\1\24\5\0\4\10\1\20\25\10\1\5"+
|
||||
"\1\25\1\7\1\0\1\13\1\0\4\12\1\21\7\12\1\4\15\12"+
|
||||
"\4\0\41\11\2\0\4\10\4\0\1\10\2\0\1\11\7\0\1\10"+
|
||||
"\4\0\1\10\5\0\27\10\1\0\37\10\1\0\u013f\10\31\0\162\10"+
|
||||
"\4\0\14\10\16\0\5\10\11\0\1\10\21\0\130\11\5\0\23\11"+
|
||||
"\12\0\1\10\13\0\1\10\1\0\3\10\1\0\1\10\1\0\24\10"+
|
||||
"\1\0\54\10\1\0\46\10\1\0\5\10\4\0\202\10\1\0\4\11"+
|
||||
"\3\0\105\10\1\0\46\10\2\0\2\10\6\0\20\10\41\0\46\10"+
|
||||
"\2\0\1\10\7\0\47\10\11\0\21\11\1\0\27\11\1\0\3\11"+
|
||||
"\1\0\1\11\1\0\2\11\1\0\1\11\13\0\33\10\5\0\3\10"+
|
||||
"\15\0\4\11\14\0\6\11\13\0\32\10\5\0\13\10\16\11\7\0"+
|
||||
"\12\11\4\0\2\10\1\11\143\10\1\0\1\10\10\11\1\0\6\11"+
|
||||
"\2\10\2\11\1\0\4\11\2\10\12\11\3\10\2\0\1\10\17\0"+
|
||||
"\1\11\1\10\1\11\36\10\33\11\2\0\3\10\60\0\46\10\13\11"+
|
||||
"\1\10\u014f\0\3\11\66\10\2\0\1\11\1\10\20\11\2\0\1\10"+
|
||||
"\4\11\3\0\12\10\2\11\2\0\12\11\21\0\3\11\1\0\10\10"+
|
||||
"\2\0\2\10\2\0\26\10\1\0\7\10\1\0\1\10\3\0\4\10"+
|
||||
"\2\0\1\11\1\10\7\11\2\0\2\11\2\0\3\11\11\0\1\11"+
|
||||
"\4\0\2\10\1\0\3\10\2\11\2\0\12\11\4\10\15\0\3\11"+
|
||||
"\1\0\6\10\4\0\2\10\2\0\26\10\1\0\7\10\1\0\2\10"+
|
||||
"\1\0\2\10\1\0\2\10\2\0\1\11\1\0\5\11\4\0\2\11"+
|
||||
"\2\0\3\11\13\0\4\10\1\0\1\10\7\0\14\11\3\10\14\0"+
|
||||
"\3\11\1\0\11\10\1\0\3\10\1\0\26\10\1\0\7\10\1\0"+
|
||||
"\2\10\1\0\5\10\2\0\1\11\1\10\10\11\1\0\3\11\1\0"+
|
||||
"\3\11\2\0\1\10\17\0\2\10\2\11\2\0\12\11\1\0\1\10"+
|
||||
"\17\0\3\11\1\0\10\10\2\0\2\10\2\0\26\10\1\0\7\10"+
|
||||
"\1\0\2\10\1\0\5\10\2\0\1\11\1\10\6\11\3\0\2\11"+
|
||||
"\2\0\3\11\10\0\2\11\4\0\2\10\1\0\3\10\4\0\12\11"+
|
||||
"\1\0\1\10\20\0\1\11\1\10\1\0\6\10\3\0\3\10\1\0"+
|
||||
"\4\10\3\0\2\10\1\0\1\10\1\0\2\10\3\0\2\10\3\0"+
|
||||
"\3\10\3\0\10\10\1\0\3\10\4\0\5\11\3\0\3\11\1\0"+
|
||||
"\4\11\11\0\1\11\17\0\11\11\11\0\1\10\7\0\3\11\1\0"+
|
||||
"\10\10\1\0\3\10\1\0\27\10\1\0\12\10\1\0\5\10\4\0"+
|
||||
"\7\11\1\0\3\11\1\0\4\11\7\0\2\11\11\0\2\10\4\0"+
|
||||
"\12\11\22\0\2\11\1\0\10\10\1\0\3\10\1\0\27\10\1\0"+
|
||||
"\12\10\1\0\5\10\2\0\1\11\1\10\7\11\1\0\3\11\1\0"+
|
||||
"\4\11\7\0\2\11\7\0\1\10\1\0\2\10\4\0\12\11\22\0"+
|
||||
"\2\11\1\0\10\10\1\0\3\10\1\0\27\10\1\0\20\10\4\0"+
|
||||
"\6\11\2\0\3\11\1\0\4\11\11\0\1\11\10\0\2\10\4\0"+
|
||||
"\12\11\22\0\2\11\1\0\22\10\3\0\30\10\1\0\11\10\1\0"+
|
||||
"\1\10\2\0\7\10\3\0\1\11\4\0\6\11\1\0\1\11\1\0"+
|
||||
"\10\11\22\0\2\11\15\0\60\10\1\11\2\10\7\11\4\0\10\10"+
|
||||
"\10\11\1\0\12\11\47\0\2\10\1\0\1\10\2\0\2\10\1\0"+
|
||||
"\1\10\2\0\1\10\6\0\4\10\1\0\7\10\1\0\3\10\1\0"+
|
||||
"\1\10\1\0\1\10\2\0\2\10\1\0\4\10\1\11\2\10\6\11"+
|
||||
"\1\0\2\11\1\10\2\0\5\10\1\0\1\10\1\0\6\11\2\0"+
|
||||
"\12\11\2\0\2\10\42\0\1\10\27\0\2\11\6\0\12\11\13\0"+
|
||||
"\1\11\1\0\1\11\1\0\1\11\4\0\2\11\10\10\1\0\42\10"+
|
||||
"\6\0\24\11\1\0\2\11\4\10\4\0\10\11\1\0\44\11\11\0"+
|
||||
"\1\11\71\0\42\10\1\0\5\10\1\0\2\10\1\0\7\11\3\0"+
|
||||
"\4\11\6\0\12\11\6\0\6\10\4\11\106\0\46\10\12\0\51\10"+
|
||||
"\7\0\132\10\5\0\104\10\5\0\122\10\6\0\7\10\1\0\77\10"+
|
||||
"\1\0\1\10\1\0\4\10\2\0\7\10\1\0\1\10\1\0\4\10"+
|
||||
"\2\0\47\10\1\0\1\10\1\0\4\10\2\0\37\10\1\0\1\10"+
|
||||
"\1\0\4\10\2\0\7\10\1\0\1\10\1\0\4\10\2\0\7\10"+
|
||||
"\1\0\7\10\1\0\27\10\1\0\37\10\1\0\1\10\1\0\4\10"+
|
||||
"\2\0\7\10\1\0\47\10\1\0\23\10\16\0\11\11\56\0\125\10"+
|
||||
"\14\0\u026c\10\2\0\10\10\12\0\32\10\5\0\113\10\3\0\3\10"+
|
||||
"\17\0\15\10\1\0\4\10\3\11\13\0\22\10\3\11\13\0\22\10"+
|
||||
"\2\11\14\0\15\10\1\0\3\10\1\0\2\11\14\0\64\10\40\11"+
|
||||
"\3\0\1\10\3\0\2\10\1\11\2\0\12\11\41\0\3\11\2\0"+
|
||||
"\12\11\6\0\130\10\10\0\51\10\1\11\126\0\35\10\3\0\14\11"+
|
||||
"\4\0\14\11\12\0\12\11\36\10\2\0\5\10\u038b\0\154\10\224\0"+
|
||||
"\234\10\4\0\132\10\6\0\26\10\2\0\6\10\2\0\46\10\2\0"+
|
||||
"\6\10\2\0\10\10\1\0\1\10\1\0\1\10\1\0\1\10\1\0"+
|
||||
"\37\10\2\0\65\10\1\0\7\10\1\0\1\10\3\0\3\10\1\0"+
|
||||
"\7\10\3\0\4\10\2\0\6\10\4\0\15\10\5\0\3\10\1\0"+
|
||||
"\7\10\17\0\4\11\32\0\5\11\20\0\2\10\23\0\1\10\13\0"+
|
||||
"\4\11\6\0\6\11\1\0\1\10\15\0\1\10\40\0\22\10\36\0"+
|
||||
"\15\11\4\0\1\11\3\0\6\11\27\0\1\10\4\0\1\10\2\0"+
|
||||
"\12\10\1\0\1\10\3\0\5\10\6\0\1\10\1\0\1\10\1\0"+
|
||||
"\1\10\1\0\4\10\1\0\3\10\1\0\7\10\3\0\3\10\5\0"+
|
||||
"\5\10\26\0\44\10\u0e81\0\3\10\31\0\11\10\6\11\1\0\5\10"+
|
||||
"\2\0\5\10\4\0\126\10\2\0\2\11\2\0\3\10\1\0\137\10"+
|
||||
"\5\0\50\10\4\0\136\10\21\0\30\10\70\0\20\10\u0200\0\u19b6\10"+
|
||||
"\112\0\u51a6\10\132\0\u048d\10\u0773\0\u2ba4\10\u215c\0\u012e\10\2\0\73\10"+
|
||||
"\225\0\7\10\14\0\5\10\5\0\1\10\1\11\12\10\1\0\15\10"+
|
||||
"\1\0\5\10\1\0\1\10\1\0\2\10\1\0\2\10\1\0\154\10"+
|
||||
"\41\0\u016b\10\22\0\100\10\2\0\66\10\50\0\15\10\3\0\20\11"+
|
||||
"\20\0\4\11\17\0\2\10\30\0\3\10\31\0\1\10\6\0\5\10"+
|
||||
"\1\0\207\10\2\0\1\11\4\0\1\10\13\0\12\11\7\0\32\10"+
|
||||
"\4\0\1\10\1\0\32\10\12\0\132\10\3\0\6\10\2\0\6\10"+
|
||||
"\2\0\6\10\2\0\3\10\3\0\2\10\3\0\2\10\22\0\3\11"+
|
||||
"\4\0";
|
||||
"\11\11\1\3\1\2\1\0\1\3\1\1\16\11\4\0\1\41\1\0"+
|
||||
"\1\43\1\0\1\10\6\0\1\22\1\0\1\16\1\17\1\0\1\15"+
|
||||
"\3\44\4\23\2\6\1\14\1\24\5\0\4\10\1\20\25\10\1\5"+
|
||||
"\1\25\1\7\1\0\1\13\1\0\1\36\1\12\1\27\1\40\1\21"+
|
||||
"\1\12\1\42\1\12\1\32\3\12\1\4\1\34\1\33\1\30\1\12"+
|
||||
"\1\37\1\35\1\31\3\12\1\26\2\12\4\0\41\11\2\0\4\10"+
|
||||
"\4\0\1\10\2\0\1\11\7\0\1\10\4\0\1\10\5\0\27\10"+
|
||||
"\1\0\37\10\1\0\u013f\10\31\0\162\10\4\0\14\10\16\0\5\10"+
|
||||
"\11\0\1\10\21\0\130\11\5\0\23\11\12\0\1\10\13\0\1\10"+
|
||||
"\1\0\3\10\1\0\1\10\1\0\24\10\1\0\54\10\1\0\46\10"+
|
||||
"\1\0\5\10\4\0\202\10\1\0\4\11\3\0\105\10\1\0\46\10"+
|
||||
"\2\0\2\10\6\0\20\10\41\0\46\10\2\0\1\10\7\0\47\10"+
|
||||
"\11\0\21\11\1\0\27\11\1\0\3\11\1\0\1\11\1\0\2\11"+
|
||||
"\1\0\1\11\13\0\33\10\5\0\3\10\15\0\4\11\14\0\6\11"+
|
||||
"\13\0\32\10\5\0\13\10\16\11\7\0\12\11\4\0\2\10\1\11"+
|
||||
"\143\10\1\0\1\10\10\11\1\0\6\11\2\10\2\11\1\0\4\11"+
|
||||
"\2\10\12\11\3\10\2\0\1\10\17\0\1\11\1\10\1\11\36\10"+
|
||||
"\33\11\2\0\3\10\60\0\46\10\13\11\1\10\u014f\0\3\11\66\10"+
|
||||
"\2\0\1\11\1\10\20\11\2\0\1\10\4\11\3\0\12\10\2\11"+
|
||||
"\2\0\12\11\21\0\3\11\1\0\10\10\2\0\2\10\2\0\26\10"+
|
||||
"\1\0\7\10\1\0\1\10\3\0\4\10\2\0\1\11\1\10\7\11"+
|
||||
"\2\0\2\11\2\0\3\11\11\0\1\11\4\0\2\10\1\0\3\10"+
|
||||
"\2\11\2\0\12\11\4\10\15\0\3\11\1\0\6\10\4\0\2\10"+
|
||||
"\2\0\26\10\1\0\7\10\1\0\2\10\1\0\2\10\1\0\2\10"+
|
||||
"\2\0\1\11\1\0\5\11\4\0\2\11\2\0\3\11\13\0\4\10"+
|
||||
"\1\0\1\10\7\0\14\11\3\10\14\0\3\11\1\0\11\10\1\0"+
|
||||
"\3\10\1\0\26\10\1\0\7\10\1\0\2\10\1\0\5\10\2\0"+
|
||||
"\1\11\1\10\10\11\1\0\3\11\1\0\3\11\2\0\1\10\17\0"+
|
||||
"\2\10\2\11\2\0\12\11\1\0\1\10\17\0\3\11\1\0\10\10"+
|
||||
"\2\0\2\10\2\0\26\10\1\0\7\10\1\0\2\10\1\0\5\10"+
|
||||
"\2\0\1\11\1\10\6\11\3\0\2\11\2\0\3\11\10\0\2\11"+
|
||||
"\4\0\2\10\1\0\3\10\4\0\12\11\1\0\1\10\20\0\1\11"+
|
||||
"\1\10\1\0\6\10\3\0\3\10\1\0\4\10\3\0\2\10\1\0"+
|
||||
"\1\10\1\0\2\10\3\0\2\10\3\0\3\10\3\0\10\10\1\0"+
|
||||
"\3\10\4\0\5\11\3\0\3\11\1\0\4\11\11\0\1\11\17\0"+
|
||||
"\11\11\11\0\1\10\7\0\3\11\1\0\10\10\1\0\3\10\1\0"+
|
||||
"\27\10\1\0\12\10\1\0\5\10\4\0\7\11\1\0\3\11\1\0"+
|
||||
"\4\11\7\0\2\11\11\0\2\10\4\0\12\11\22\0\2\11\1\0"+
|
||||
"\10\10\1\0\3\10\1\0\27\10\1\0\12\10\1\0\5\10\2\0"+
|
||||
"\1\11\1\10\7\11\1\0\3\11\1\0\4\11\7\0\2\11\7\0"+
|
||||
"\1\10\1\0\2\10\4\0\12\11\22\0\2\11\1\0\10\10\1\0"+
|
||||
"\3\10\1\0\27\10\1\0\20\10\4\0\6\11\2\0\3\11\1\0"+
|
||||
"\4\11\11\0\1\11\10\0\2\10\4\0\12\11\22\0\2\11\1\0"+
|
||||
"\22\10\3\0\30\10\1\0\11\10\1\0\1\10\2\0\7\10\3\0"+
|
||||
"\1\11\4\0\6\11\1\0\1\11\1\0\10\11\22\0\2\11\15\0"+
|
||||
"\60\10\1\11\2\10\7\11\4\0\10\10\10\11\1\0\12\11\47\0"+
|
||||
"\2\10\1\0\1\10\2\0\2\10\1\0\1\10\2\0\1\10\6\0"+
|
||||
"\4\10\1\0\7\10\1\0\3\10\1\0\1\10\1\0\1\10\2\0"+
|
||||
"\2\10\1\0\4\10\1\11\2\10\6\11\1\0\2\11\1\10\2\0"+
|
||||
"\5\10\1\0\1\10\1\0\6\11\2\0\12\11\2\0\2\10\42\0"+
|
||||
"\1\10\27\0\2\11\6\0\12\11\13\0\1\11\1\0\1\11\1\0"+
|
||||
"\1\11\4\0\2\11\10\10\1\0\42\10\6\0\24\11\1\0\2\11"+
|
||||
"\4\10\4\0\10\11\1\0\44\11\11\0\1\11\71\0\42\10\1\0"+
|
||||
"\5\10\1\0\2\10\1\0\7\11\3\0\4\11\6\0\12\11\6\0"+
|
||||
"\6\10\4\11\106\0\46\10\12\0\51\10\7\0\132\10\5\0\104\10"+
|
||||
"\5\0\122\10\6\0\7\10\1\0\77\10\1\0\1\10\1\0\4\10"+
|
||||
"\2\0\7\10\1\0\1\10\1\0\4\10\2\0\47\10\1\0\1\10"+
|
||||
"\1\0\4\10\2\0\37\10\1\0\1\10\1\0\4\10\2\0\7\10"+
|
||||
"\1\0\1\10\1\0\4\10\2\0\7\10\1\0\7\10\1\0\27\10"+
|
||||
"\1\0\37\10\1\0\1\10\1\0\4\10\2\0\7\10\1\0\47\10"+
|
||||
"\1\0\23\10\16\0\11\11\56\0\125\10\14\0\u026c\10\2\0\10\10"+
|
||||
"\12\0\32\10\5\0\113\10\3\0\3\10\17\0\15\10\1\0\4\10"+
|
||||
"\3\11\13\0\22\10\3\11\13\0\22\10\2\11\14\0\15\10\1\0"+
|
||||
"\3\10\1\0\2\11\14\0\64\10\40\11\3\0\1\10\3\0\2\10"+
|
||||
"\1\11\2\0\12\11\41\0\3\11\2\0\12\11\6\0\130\10\10\0"+
|
||||
"\51\10\1\11\126\0\35\10\3\0\14\11\4\0\14\11\12\0\12\11"+
|
||||
"\36\10\2\0\5\10\u038b\0\154\10\224\0\234\10\4\0\132\10\6\0"+
|
||||
"\26\10\2\0\6\10\2\0\46\10\2\0\6\10\2\0\10\10\1\0"+
|
||||
"\1\10\1\0\1\10\1\0\1\10\1\0\37\10\2\0\65\10\1\0"+
|
||||
"\7\10\1\0\1\10\3\0\3\10\1\0\7\10\3\0\4\10\2\0"+
|
||||
"\6\10\4\0\15\10\5\0\3\10\1\0\7\10\17\0\4\11\32\0"+
|
||||
"\5\11\20\0\2\10\23\0\1\10\13\0\4\11\6\0\6\11\1\0"+
|
||||
"\1\10\15\0\1\10\40\0\22\10\36\0\15\11\4\0\1\11\3\0"+
|
||||
"\6\11\27\0\1\10\4\0\1\10\2\0\12\10\1\0\1\10\3\0"+
|
||||
"\5\10\6\0\1\10\1\0\1\10\1\0\1\10\1\0\4\10\1\0"+
|
||||
"\3\10\1\0\7\10\3\0\3\10\5\0\5\10\26\0\44\10\u0e81\0"+
|
||||
"\3\10\31\0\11\10\6\11\1\0\5\10\2\0\5\10\4\0\126\10"+
|
||||
"\2\0\2\11\2\0\3\10\1\0\137\10\5\0\50\10\4\0\136\10"+
|
||||
"\21\0\30\10\70\0\20\10\u0200\0\u19b6\10\112\0\u51a6\10\132\0\u048d\10"+
|
||||
"\u0773\0\u2ba4\10\u215c\0\u012e\10\2\0\73\10\225\0\7\10\14\0\5\10"+
|
||||
"\5\0\1\10\1\11\12\10\1\0\15\10\1\0\5\10\1\0\1\10"+
|
||||
"\1\0\2\10\1\0\2\10\1\0\154\10\41\0\u016b\10\22\0\100\10"+
|
||||
"\2\0\66\10\50\0\15\10\3\0\20\11\20\0\4\11\17\0\2\10"+
|
||||
"\30\0\3\10\31\0\1\10\6\0\5\10\1\0\207\10\2\0\1\11"+
|
||||
"\4\0\1\10\13\0\12\11\7\0\32\10\4\0\1\10\1\0\32\10"+
|
||||
"\12\0\132\10\3\0\6\10\2\0\6\10\2\0\6\10\2\0\3\10"+
|
||||
"\3\0\2\10\3\0\2\10\22\0\3\11\4\0";
|
||||
|
||||
/**
|
||||
* Translates characters to character classes
|
||||
@@ -140,13 +141,15 @@ public final class Flasm3Lexer extends DefaultJFlexLexer {
|
||||
private static final int [] ZZ_ACTION = zzUnpackAction();
|
||||
|
||||
private static final String ZZ_ACTION_PACKED_0 =
|
||||
"\3\0\2\1\1\2\1\1\1\3\2\4\1\1\1\5"+
|
||||
"\2\6\1\7\1\10\1\7\2\1\1\11\1\12\1\0"+
|
||||
"\1\13\1\14\2\3\1\0\1\10\2\0\2\11\1\3"+
|
||||
"\1\0\1\10\2\0\1\15";
|
||||
"\3\0\2\1\1\2\1\1\1\2\1\3\2\4\1\1"+
|
||||
"\1\5\2\6\1\7\1\10\1\7\2\1\1\11\1\12"+
|
||||
"\1\0\1\13\1\2\1\14\2\3\1\0\1\10\2\0"+
|
||||
"\2\11\1\2\1\3\1\0\1\10\1\0\1\2\1\0"+
|
||||
"\1\2\1\15\15\2\1\0\2\2\2\0\2\2\1\16"+
|
||||
"\2\2";
|
||||
|
||||
private static int [] zzUnpackAction() {
|
||||
int [] result = new int[38];
|
||||
int [] result = new int[66];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -171,14 +174,18 @@ public final class Flasm3Lexer extends DefaultJFlexLexer {
|
||||
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
|
||||
|
||||
private static final String ZZ_ROWMAP_PACKED_0 =
|
||||
"\0\0\0\27\0\56\0\105\0\134\0\163\0\212\0\241"+
|
||||
"\0\270\0\105\0\317\0\105\0\346\0\105\0\375\0\u0114"+
|
||||
"\0\u012b\0\u0142\0\u0159\0\u0170\0\105\0\212\0\105\0\105"+
|
||||
"\0\u0187\0\u019e\0\u01b5\0\u01cc\0\u01e3\0\u0159\0\u01fa\0\105"+
|
||||
"\0\105\0\u0211\0\u0228\0\u0228\0\u023f\0\105";
|
||||
"\0\0\0\45\0\112\0\157\0\224\0\271\0\336\0\u0103"+
|
||||
"\0\u0128\0\u014d\0\157\0\u0172\0\157\0\u0197\0\157\0\u01bc"+
|
||||
"\0\u01e1\0\u0206\0\u022b\0\u0250\0\u0275\0\157\0\336\0\157"+
|
||||
"\0\u029a\0\157\0\u02bf\0\u02e4\0\u0309\0\u032e\0\u0353\0\u0250"+
|
||||
"\0\u0378\0\157\0\u039d\0\157\0\u03c2\0\u03e7\0\u03e7\0\u040c"+
|
||||
"\0\u0431\0\u0456\0\157\0\u047b\0\u04a0\0\u04c5\0\u04ea\0\u050f"+
|
||||
"\0\u0534\0\u0559\0\u057e\0\u05a3\0\u05c8\0\u05ed\0\u0612\0\u0637"+
|
||||
"\0\u065c\0\u0681\0\u06a6\0\u06cb\0\u06f0\0\u0715\0\u073a\0\157"+
|
||||
"\0\u075f\0\u0784";
|
||||
|
||||
private static int [] zzUnpackRowMap() {
|
||||
int [] result = new int[38];
|
||||
int [] result = new int[66];
|
||||
int offset = 0;
|
||||
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -202,31 +209,105 @@ public final class Flasm3Lexer extends DefaultJFlexLexer {
|
||||
|
||||
private static final String ZZ_TRANS_PACKED_0 =
|
||||
"\3\4\1\5\1\6\3\4\1\7\1\4\1\6\1\7"+
|
||||
"\4\4\1\7\1\6\5\4\1\10\1\11\1\12\22\10"+
|
||||
"\1\13\1\14\1\4\1\15\1\16\1\4\1\17\1\4"+
|
||||
"\1\20\1\4\1\21\1\4\2\21\1\4\1\20\1\22"+
|
||||
"\1\23\2\21\1\4\1\20\1\24\1\4\1\25\32\0"+
|
||||
"\1\5\27\0\1\6\1\0\1\6\1\0\2\26\2\6"+
|
||||
"\1\27\1\6\2\0\1\26\1\6\1\0\1\6\7\0"+
|
||||
"\1\26\1\0\1\26\1\0\4\26\1\27\1\26\2\0"+
|
||||
"\2\26\1\0\1\26\3\0\1\10\2\0\22\10\4\0"+
|
||||
"\1\12\24\0\2\30\1\0\12\30\1\31\5\30\1\32"+
|
||||
"\3\30\2\0\1\16\30\0\1\21\1\33\1\21\1\0"+
|
||||
"\4\21\1\0\1\21\2\0\2\21\1\0\1\21\11\0"+
|
||||
"\1\20\6\0\1\20\1\0\1\34\2\35\1\0\1\20"+
|
||||
"\7\0\1\21\1\0\1\21\1\0\4\21\1\0\1\21"+
|
||||
"\2\0\2\21\1\0\1\21\11\0\1\20\6\0\1\20"+
|
||||
"\1\0\1\36\3\0\1\20\11\0\1\34\6\0\1\34"+
|
||||
"\5\0\1\34\3\0\1\24\1\37\1\40\24\24\15\0"+
|
||||
"\1\32\5\0\1\32\20\0\1\41\5\0\1\41\11\0"+
|
||||
"\1\42\6\0\1\42\5\0\1\42\11\0\1\34\6\0"+
|
||||
"\1\34\2\0\2\35\1\0\1\34\11\0\1\43\6\0"+
|
||||
"\1\43\1\44\3\0\1\44\1\43\5\0\1\40\32\0"+
|
||||
"\1\42\1\45\5\0\1\42\5\0\1\42\11\0\1\43"+
|
||||
"\6\0\1\43\5\0\1\43\31\0\1\46";
|
||||
"\4\4\1\7\1\10\4\4\13\6\1\5\1\6\2\4"+
|
||||
"\1\11\1\12\1\13\22\11\1\14\15\11\1\15\1\11"+
|
||||
"\1\4\1\16\1\17\1\4\1\20\1\4\1\21\1\4"+
|
||||
"\1\22\1\4\2\22\1\4\1\21\1\23\1\24\2\22"+
|
||||
"\1\4\1\21\1\25\1\4\13\22\1\4\1\22\1\26"+
|
||||
"\1\21\50\0\1\5\35\0\1\5\7\0\1\6\1\0"+
|
||||
"\1\6\1\0\2\27\2\6\1\30\1\6\2\0\1\27"+
|
||||
"\1\6\1\0\1\6\2\0\13\6\1\0\1\6\1\0"+
|
||||
"\1\6\4\0\1\27\1\0\1\27\1\0\4\27\1\30"+
|
||||
"\1\27\2\0\2\27\1\0\1\27\2\0\13\27\1\0"+
|
||||
"\1\27\1\0\1\27\4\0\1\6\1\0\1\6\1\0"+
|
||||
"\2\27\2\6\1\30\1\6\2\0\1\27\1\6\1\0"+
|
||||
"\1\6\2\0\1\31\12\6\1\0\1\6\1\0\1\6"+
|
||||
"\1\11\2\0\22\11\1\0\15\11\1\0\1\11\2\0"+
|
||||
"\1\13\42\0\2\32\1\0\12\32\1\33\5\32\1\34"+
|
||||
"\20\32\1\33\2\0\1\17\46\0\1\22\1\35\1\22"+
|
||||
"\1\0\4\22\1\0\1\22\2\0\2\22\1\0\1\22"+
|
||||
"\2\0\13\22\1\0\1\22\1\0\1\22\6\0\1\21"+
|
||||
"\6\0\1\21\1\0\1\36\2\37\1\0\1\21\20\0"+
|
||||
"\1\21\4\0\1\22\1\0\1\22\1\0\4\22\1\0"+
|
||||
"\1\22\2\0\2\22\1\0\1\22\2\0\13\22\1\0"+
|
||||
"\1\22\1\0\1\22\6\0\1\21\6\0\1\21\1\0"+
|
||||
"\1\40\3\0\1\21\20\0\1\21\6\0\1\36\6\0"+
|
||||
"\1\36\5\0\1\36\20\0\1\36\1\25\1\41\1\42"+
|
||||
"\42\25\4\0\1\6\1\0\1\6\1\0\2\27\2\6"+
|
||||
"\1\30\1\6\2\0\1\27\1\6\1\0\1\6\2\0"+
|
||||
"\1\6\1\43\11\6\1\0\1\6\1\0\1\6\15\0"+
|
||||
"\1\34\5\0\1\34\20\0\1\34\15\0\1\44\5\0"+
|
||||
"\1\44\20\0\1\44\6\0\1\45\6\0\1\45\5\0"+
|
||||
"\1\45\20\0\1\45\6\0\1\36\6\0\1\36\2\0"+
|
||||
"\2\37\1\0\1\36\20\0\1\36\6\0\1\46\6\0"+
|
||||
"\1\46\1\47\3\0\1\47\1\46\20\0\1\46\2\0"+
|
||||
"\1\42\46\0\1\6\1\0\1\6\1\0\2\27\2\6"+
|
||||
"\1\30\1\6\2\0\1\27\1\50\1\0\1\6\2\0"+
|
||||
"\13\6\1\0\1\6\1\0\1\6\6\0\1\45\1\51"+
|
||||
"\5\0\1\45\5\0\1\45\20\0\1\45\6\0\1\46"+
|
||||
"\6\0\1\46\5\0\1\46\20\0\1\46\4\0\1\6"+
|
||||
"\1\0\1\6\1\0\2\27\2\6\1\30\1\6\2\0"+
|
||||
"\1\27\1\6\1\0\1\6\2\0\2\6\1\52\10\6"+
|
||||
"\1\0\1\6\1\0\1\6\43\0\1\53\5\0\1\6"+
|
||||
"\1\0\1\6\1\0\2\27\2\6\1\30\1\6\2\0"+
|
||||
"\1\27\1\6\1\0\1\6\2\0\3\6\1\54\7\6"+
|
||||
"\1\0\1\6\1\0\1\6\4\0\1\6\1\0\1\6"+
|
||||
"\1\0\2\27\2\6\1\30\1\6\2\0\1\27\1\6"+
|
||||
"\1\0\1\6\2\0\4\6\1\55\6\6\1\0\1\6"+
|
||||
"\1\0\1\6\4\0\1\6\1\0\1\6\1\0\2\27"+
|
||||
"\2\6\1\30\1\6\2\0\1\27\1\6\1\0\1\6"+
|
||||
"\2\0\5\6\1\56\5\6\1\0\1\6\1\0\1\6"+
|
||||
"\4\0\1\6\1\0\1\6\1\0\2\27\2\6\1\30"+
|
||||
"\1\6\2\0\1\27\1\6\1\0\1\6\2\0\6\6"+
|
||||
"\1\57\4\6\1\0\1\6\1\0\1\6\4\0\1\6"+
|
||||
"\1\0\1\6\1\0\2\27\2\6\1\30\1\6\2\0"+
|
||||
"\1\27\1\60\1\0\1\6\2\0\3\6\1\61\3\6"+
|
||||
"\1\62\3\6\1\0\1\6\1\0\1\6\4\0\1\6"+
|
||||
"\1\0\1\6\1\0\2\27\2\6\1\30\1\6\2\0"+
|
||||
"\1\27\1\6\1\0\1\6\2\0\6\6\1\63\4\6"+
|
||||
"\1\0\1\6\1\0\1\6\4\0\1\6\1\0\1\6"+
|
||||
"\1\0\2\27\2\6\1\30\1\6\2\0\1\27\1\6"+
|
||||
"\1\0\1\6\2\0\10\6\1\64\2\6\1\0\1\6"+
|
||||
"\1\0\1\6\4\0\1\6\1\0\1\6\1\0\2\27"+
|
||||
"\2\6\1\30\1\6\2\0\1\27\1\6\1\0\1\6"+
|
||||
"\2\0\3\6\1\65\7\6\1\0\1\6\1\0\1\6"+
|
||||
"\4\0\1\6\1\0\1\6\1\0\2\27\2\6\1\30"+
|
||||
"\1\6\2\0\1\27\1\6\1\0\1\6\2\0\12\6"+
|
||||
"\1\66\1\0\1\6\1\0\1\6\4\0\1\6\1\0"+
|
||||
"\1\6\1\0\2\27\2\6\1\30\1\6\2\0\1\27"+
|
||||
"\1\6\1\0\1\6\2\0\11\6\1\67\1\6\1\0"+
|
||||
"\1\6\1\0\1\6\4\0\1\6\1\0\1\6\1\0"+
|
||||
"\2\27\2\6\1\30\1\6\2\0\1\27\1\6\1\0"+
|
||||
"\1\6\2\0\10\6\1\70\2\6\1\0\1\6\1\0"+
|
||||
"\1\6\4\0\1\6\1\0\1\6\1\0\2\27\2\6"+
|
||||
"\1\30\1\6\2\0\1\27\1\6\1\0\1\6\2\0"+
|
||||
"\13\6\1\71\1\6\1\0\1\6\4\0\1\6\1\0"+
|
||||
"\1\6\1\0\2\27\2\6\1\30\1\6\2\0\1\27"+
|
||||
"\1\6\1\0\1\6\2\0\13\6\1\0\1\72\1\0"+
|
||||
"\1\6\4\0\1\6\1\0\1\6\1\0\2\27\2\6"+
|
||||
"\1\30\1\6\2\0\1\27\1\6\1\0\1\6\2\0"+
|
||||
"\11\6\1\73\1\6\1\0\1\6\1\0\1\6\6\0"+
|
||||
"\1\74\6\0\1\75\5\0\1\74\20\0\1\74\4\0"+
|
||||
"\1\6\1\0\1\6\1\0\2\27\2\6\1\30\1\6"+
|
||||
"\2\0\1\27\1\76\1\0\1\6\2\0\13\6\1\0"+
|
||||
"\1\6\1\0\1\6\4\0\1\6\1\0\1\6\1\0"+
|
||||
"\2\27\2\6\1\30\1\6\2\0\1\27\1\6\1\0"+
|
||||
"\1\6\2\0\3\6\1\77\7\6\1\0\1\6\1\0"+
|
||||
"\1\6\6\0\1\74\5\0\1\100\1\74\5\0\1\74"+
|
||||
"\20\0\1\74\14\0\1\100\34\0\1\6\1\0\1\6"+
|
||||
"\1\0\2\27\2\6\1\30\1\6\2\0\1\27\1\6"+
|
||||
"\1\0\1\6\2\0\3\6\1\66\7\6\1\0\1\6"+
|
||||
"\1\0\1\6\4\0\1\6\1\0\1\101\1\0\2\27"+
|
||||
"\2\6\1\30\1\102\2\0\1\27\1\6\1\0\1\101"+
|
||||
"\2\0\13\6\1\0\1\6\1\0\1\101\4\0\1\6"+
|
||||
"\1\0\1\101\1\0\2\27\2\6\1\100\1\101\2\0"+
|
||||
"\1\27\1\6\1\0\1\101\2\0\13\6\1\0\1\6"+
|
||||
"\1\0\1\101\4\0\1\6\1\0\1\6\1\0\2\27"+
|
||||
"\2\6\1\100\1\6\2\0\1\27\1\6\1\0\1\6"+
|
||||
"\2\0\13\6\1\0\1\6\1\0\1\6";
|
||||
|
||||
private static int [] zzUnpackTrans() {
|
||||
int [] result = new int[598];
|
||||
int [] result = new int[1961];
|
||||
int offset = 0;
|
||||
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -264,12 +345,14 @@ public final class Flasm3Lexer extends DefaultJFlexLexer {
|
||||
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
|
||||
|
||||
private static final String ZZ_ATTRIBUTE_PACKED_0 =
|
||||
"\3\0\1\11\5\1\1\11\1\1\1\11\1\1\1\11"+
|
||||
"\6\1\1\11\1\0\2\11\2\1\1\0\1\1\2\0"+
|
||||
"\1\1\2\11\1\0\1\1\2\0\1\11";
|
||||
"\3\0\1\11\6\1\1\11\1\1\1\11\1\1\1\11"+
|
||||
"\6\1\1\11\1\0\1\11\1\1\1\11\2\1\1\0"+
|
||||
"\1\1\2\0\1\1\1\11\1\1\1\11\1\0\1\1"+
|
||||
"\1\0\1\1\1\0\1\1\1\11\15\1\1\0\2\1"+
|
||||
"\2\0\2\1\1\11\2\1";
|
||||
|
||||
private static int [] zzUnpackAttribute() {
|
||||
int [] result = new int[38];
|
||||
int [] result = new int[66];
|
||||
int offset = 0;
|
||||
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
|
||||
return result;
|
||||
@@ -387,7 +470,7 @@ public final class Flasm3Lexer extends DefaultJFlexLexer {
|
||||
char [] map = new char[0x10000];
|
||||
int i = 0; /* index in packed string */
|
||||
int j = 0; /* index in unpacked array */
|
||||
while (i < 1702) {
|
||||
while (i < 1734) {
|
||||
int count = packed.charAt(i++);
|
||||
char value = packed.charAt(i++);
|
||||
do map[j++] = value; while (--count > 0);
|
||||
@@ -665,63 +748,67 @@ public final class Flasm3Lexer extends DefaultJFlexLexer {
|
||||
return token(TokenType.STRING, tokenStart, tokenLength + 1);
|
||||
}
|
||||
}
|
||||
case 14: break;
|
||||
case 15: break;
|
||||
case 9:
|
||||
{ yybegin(YYINITIAL); return token(TokenType.COMMENT);
|
||||
}
|
||||
case 15: break;
|
||||
case 16: break;
|
||||
case 4:
|
||||
{ yybegin(YYINITIAL);
|
||||
return token(TokenType.ERROR,tokenStart, tokenLength);
|
||||
}
|
||||
case 16: break;
|
||||
case 17: break;
|
||||
case 14:
|
||||
{ return token(TokenType.KEYWORD);
|
||||
}
|
||||
case 18: break;
|
||||
case 11:
|
||||
{ return token(TokenType.IDENTIFIER,yychar,yylength()-1);
|
||||
}
|
||||
case 17: break;
|
||||
case 19: break;
|
||||
case 10:
|
||||
{ yybegin(STRING);
|
||||
tokenStart = yychar;
|
||||
tokenLength = 1;
|
||||
isMultiname=false;
|
||||
}
|
||||
case 18: break;
|
||||
case 20: break;
|
||||
case 13:
|
||||
{ isMultiname=true;
|
||||
yybegin(STRING);
|
||||
tokenStart = yychar;
|
||||
tokenLength = yylength();
|
||||
}
|
||||
case 19: break;
|
||||
case 21: break;
|
||||
case 12:
|
||||
{ tokenLength += 2;
|
||||
}
|
||||
case 20: break;
|
||||
case 22: break;
|
||||
case 7:
|
||||
{ return token(TokenType.IDENTIFIER);
|
||||
}
|
||||
case 21: break;
|
||||
case 23: break;
|
||||
case 2:
|
||||
{ yybegin(PARAMETERS);
|
||||
return token(TokenType.KEYWORD);
|
||||
}
|
||||
case 22: break;
|
||||
case 24: break;
|
||||
case 8:
|
||||
{ return token(TokenType.NUMBER);
|
||||
}
|
||||
case 23: break;
|
||||
case 25: break;
|
||||
case 6:
|
||||
{ yybegin(YYINITIAL);
|
||||
}
|
||||
case 24: break;
|
||||
case 26: break;
|
||||
case 1:
|
||||
{
|
||||
}
|
||||
case 25: break;
|
||||
case 27: break;
|
||||
case 3:
|
||||
{ tokenLength += yylength();
|
||||
}
|
||||
case 26: break;
|
||||
case 28: break;
|
||||
default:
|
||||
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
|
||||
zzAtEOF = true;
|
||||
|
||||
Binary file not shown.
3
trunk/manifest.mf
Normal file
3
trunk/manifest.mf
Normal file
@@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
X-COMMENT: Main-Class will be added automatically by build
|
||||
|
||||
74
trunk/nbbuild.xml
Normal file
74
trunk/nbbuild.xml
Normal file
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- You may freely edit this file. See commented blocks below for -->
|
||||
<!-- some examples of how to customize the build. -->
|
||||
<!-- (If you delete it and reopen the project it will be recreated.) -->
|
||||
<!-- By default, only the Clean and Build commands use this build script. -->
|
||||
<!-- Commands such as Run, Debug, and Test only use this build script if -->
|
||||
<!-- the Compile on Save feature is turned off for the project. -->
|
||||
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
|
||||
<!-- in the project's Project Properties dialog box.-->
|
||||
<project name="ASDec" default="default" basedir=".">
|
||||
<description>Builds, tests, and runs the project ASDec.</description>
|
||||
<import file="nbproject/build-impl.xml"/>
|
||||
<!--
|
||||
|
||||
There exist several targets which are by default empty and which can be
|
||||
used for execution of your tasks. These targets are usually executed
|
||||
before and after some main targets. They are:
|
||||
|
||||
-pre-init: called before initialization of project properties
|
||||
-post-init: called after initialization of project properties
|
||||
-pre-compile: called before javac compilation
|
||||
-post-compile: called after javac compilation
|
||||
-pre-compile-single: called before javac compilation of single file
|
||||
-post-compile-single: called after javac compilation of single file
|
||||
-pre-compile-test: called before javac compilation of JUnit tests
|
||||
-post-compile-test: called after javac compilation of JUnit tests
|
||||
-pre-compile-test-single: called before javac compilation of single JUnit test
|
||||
-post-compile-test-single: called after javac compilation of single JUunit test
|
||||
-pre-jar: called before JAR building
|
||||
-post-jar: called after JAR building
|
||||
-post-clean: called after cleaning build products
|
||||
|
||||
(Targets beginning with '-' are not intended to be called on their own.)
|
||||
|
||||
Example of inserting an obfuscator after compilation could look like this:
|
||||
|
||||
<target name="-post-compile">
|
||||
<obfuscate>
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
</obfuscate>
|
||||
</target>
|
||||
|
||||
For list of available properties check the imported
|
||||
nbproject/build-impl.xml file.
|
||||
|
||||
|
||||
Another way to customize the build is by overriding existing main targets.
|
||||
The targets of interest are:
|
||||
|
||||
-init-macrodef-javac: defines macro for javac compilation
|
||||
-init-macrodef-junit: defines macro for junit execution
|
||||
-init-macrodef-debug: defines macro for class debugging
|
||||
-init-macrodef-java: defines macro for class execution
|
||||
-do-jar-with-manifest: JAR building (if you are using a manifest)
|
||||
-do-jar-without-manifest: JAR building (if you are not using a manifest)
|
||||
run: execution of project
|
||||
-javadoc-build: Javadoc generation
|
||||
test-report: JUnit report generation
|
||||
|
||||
An example of overriding the target for project execution could look like this:
|
||||
|
||||
<target name="run" depends="ASDec-impl.jar">
|
||||
<exec dir="bin" executable="launcher.exe">
|
||||
<arg file="${dist.jar}"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
Notice that the overridden target depends on the jar target and not only on
|
||||
the compile target as the regular run target does. Again, for a list of available
|
||||
properties which you can use, check the target you are overriding in the
|
||||
nbproject/build-impl.xml file.
|
||||
|
||||
-->
|
||||
</project>
|
||||
891
trunk/nbproject/build-impl.xml
Normal file
891
trunk/nbproject/build-impl.xml
Normal file
@@ -0,0 +1,891 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
*** GENERATED FROM project.xml - DO NOT EDIT ***
|
||||
*** EDIT ../build.xml INSTEAD ***
|
||||
|
||||
For the purpose of easier reading the script
|
||||
is divided into following sections:
|
||||
|
||||
- initialization
|
||||
- compilation
|
||||
- jar
|
||||
- execution
|
||||
- debugging
|
||||
- javadoc
|
||||
- junit compilation
|
||||
- junit execution
|
||||
- junit debugging
|
||||
- applet
|
||||
- cleanup
|
||||
|
||||
-->
|
||||
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="ASDec-impl">
|
||||
<fail message="Please build using Ant 1.7.1 or higher.">
|
||||
<condition>
|
||||
<not>
|
||||
<antversion atleast="1.7.1"/>
|
||||
</not>
|
||||
</condition>
|
||||
</fail>
|
||||
<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
|
||||
<!--
|
||||
======================
|
||||
INITIALIZATION SECTION
|
||||
======================
|
||||
-->
|
||||
<target name="-pre-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="-pre-init" name="-init-private">
|
||||
<property file="nbproject/private/config.properties"/>
|
||||
<property file="nbproject/private/configs/${config}.properties"/>
|
||||
<property file="nbproject/private/private.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private" name="-init-user">
|
||||
<property file="${user.properties.file}"/>
|
||||
<!-- The two properties below are usually overridden -->
|
||||
<!-- by the active platform. Just a fallback. -->
|
||||
<property name="default.javac.source" value="1.4"/>
|
||||
<property name="default.javac.target" value="1.4"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user" name="-init-project">
|
||||
<property file="nbproject/configs/${config}.properties"/>
|
||||
<property file="nbproject/project.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
|
||||
<available file="${manifest.file}" property="manifest.available"/>
|
||||
<available file="${application.splash}" property="splashscreen.available"/>
|
||||
<condition property="main.class.available">
|
||||
<and>
|
||||
<isset property="main.class"/>
|
||||
<not>
|
||||
<equals arg1="${main.class}" arg2="" trim="true"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
<isset property="main.class.available"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.mkdist">
|
||||
<and>
|
||||
<isset property="libs.CopyLibs.classpath"/>
|
||||
<not>
|
||||
<istrue value="${mkdist.disabled}"/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class+mkdist.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<isset property="do.mkdist"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class+mkdist.available+splashscreen.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available}"/>
|
||||
<istrue value="${splashscreen.available}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive">
|
||||
<not>
|
||||
<istrue value="${jar.archive.disabled}"/>
|
||||
</not>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class+mkdist.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available}"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class+mkdist.available+splashscreen.available}"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="have.tests">
|
||||
<or>
|
||||
<available file="${test.src.dir}"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="have.sources">
|
||||
<or>
|
||||
<available file="${src.dir}"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="netbeans.home+have.tests">
|
||||
<and>
|
||||
<isset property="netbeans.home"/>
|
||||
<isset property="have.tests"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="no.javadoc.preview">
|
||||
<and>
|
||||
<isset property="javadoc.preview"/>
|
||||
<isfalse value="${javadoc.preview}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="run.jvmargs" value=""/>
|
||||
<property name="javac.compilerargs" value=""/>
|
||||
<property name="work.dir" value="${basedir}"/>
|
||||
<condition property="no.deps">
|
||||
<and>
|
||||
<istrue value="${no.dependencies}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="javac.debug" value="true"/>
|
||||
<property name="javadoc.preview" value="true"/>
|
||||
<property name="application.args" value=""/>
|
||||
<property name="source.encoding" value="${file.encoding}"/>
|
||||
<property name="runtime.encoding" value="${source.encoding}"/>
|
||||
<condition property="javadoc.encoding.used" value="${javadoc.encoding}">
|
||||
<and>
|
||||
<isset property="javadoc.encoding"/>
|
||||
<not>
|
||||
<equals arg1="${javadoc.encoding}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<property name="javadoc.encoding.used" value="${source.encoding}"/>
|
||||
<property name="includes" value="**"/>
|
||||
<property name="excludes" value=""/>
|
||||
<property name="do.depend" value="false"/>
|
||||
<condition property="do.depend.true">
|
||||
<istrue value="${do.depend}"/>
|
||||
</condition>
|
||||
<path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
|
||||
<condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
|
||||
<length length="0" string="${endorsed.classpath}" when="greater"/>
|
||||
</condition>
|
||||
<property name="javac.fork" value="false"/>
|
||||
<property name="jar.index" value="false"/>
|
||||
<available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
|
||||
</target>
|
||||
<target name="-post-init">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
|
||||
<fail unless="src.dir">Must set src.dir</fail>
|
||||
<fail unless="test.src.dir">Must set test.src.dir</fail>
|
||||
<fail unless="build.dir">Must set build.dir</fail>
|
||||
<fail unless="dist.dir">Must set dist.dir</fail>
|
||||
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
|
||||
<fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
|
||||
<fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
|
||||
<fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
|
||||
<fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
|
||||
<fail unless="dist.jar">Must set dist.jar</fail>
|
||||
</target>
|
||||
<target name="-init-macrodef-property">
|
||||
<macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute name="name"/>
|
||||
<attribute name="value"/>
|
||||
<sequential>
|
||||
<property name="@{name}" value="${@{value}}"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
|
||||
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<attribute default="${javac.processorpath}" name="processorpath"/>
|
||||
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="${empty.dir}" name="sourcepath"/>
|
||||
<attribute default="${empty.dir}" name="gensrcdir"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<property location="${build.dir}/empty" name="empty.dir"/>
|
||||
<mkdir dir="${empty.dir}"/>
|
||||
<mkdir dir="@{apgeneratedsrcdir}"/>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
|
||||
<src>
|
||||
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</src>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.compilerargs}"/>
|
||||
<compilerarg value="-processorpath"/>
|
||||
<compilerarg path="@{processorpath}:${empty.dir}"/>
|
||||
<compilerarg line="${ap.processors.internal}"/>
|
||||
<compilerarg line="${annotation.processing.processor.options}"/>
|
||||
<compilerarg value="-s"/>
|
||||
<compilerarg path="@{apgeneratedsrcdir}"/>
|
||||
<compilerarg line="${ap.proc.none.internal}"/>
|
||||
<customize/>
|
||||
</javac>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
|
||||
<macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<attribute default="${javac.processorpath}" name="processorpath"/>
|
||||
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="${javac.debug}" name="debug"/>
|
||||
<attribute default="${empty.dir}" name="sourcepath"/>
|
||||
<attribute default="${empty.dir}" name="gensrcdir"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<property location="${build.dir}/empty" name="empty.dir"/>
|
||||
<mkdir dir="${empty.dir}"/>
|
||||
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
|
||||
<src>
|
||||
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</src>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.compilerargs}"/>
|
||||
<customize/>
|
||||
</javac>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
|
||||
<macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${src.dir}" name="srcdir"/>
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<attribute default="${javac.classpath}" name="classpath"/>
|
||||
<sequential>
|
||||
<depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
</depend>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${build.classes.dir}" name="destdir"/>
|
||||
<sequential>
|
||||
<fail unless="javac.includes">Must set javac.includes</fail>
|
||||
<pathconvert pathsep="," property="javac.includes.binary">
|
||||
<path>
|
||||
<filelist dir="@{destdir}" files="${javac.includes}"/>
|
||||
</path>
|
||||
<globmapper from="*.java" to="*.class"/>
|
||||
</pathconvert>
|
||||
<delete>
|
||||
<files includes="${javac.includes.binary}"/>
|
||||
</delete>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-junit">
|
||||
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${includes}" name="includes"/>
|
||||
<attribute default="${excludes}" name="excludes"/>
|
||||
<attribute default="**" name="testincludes"/>
|
||||
<sequential>
|
||||
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
|
||||
<batchtest todir="${build.test.results.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
|
||||
<filename name="@{testincludes}"/>
|
||||
</fileset>
|
||||
</batchtest>
|
||||
<classpath>
|
||||
<path path="${run.test.classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<formatter type="brief" usefile="false"/>
|
||||
<formatter type="xml"/>
|
||||
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
</junit>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
|
||||
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="name"/>
|
||||
<attribute default="${debug.classpath}" name="classpath"/>
|
||||
<attribute default="" name="stopclassname"/>
|
||||
<sequential>
|
||||
<nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
</nbjpdastart>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${build.classes.dir}" name="dir"/>
|
||||
<sequential>
|
||||
<nbjpdareload>
|
||||
<fileset dir="@{dir}" includes="${fix.classes}">
|
||||
<include name="${fix.includes}*.class"/>
|
||||
</fileset>
|
||||
</nbjpdareload>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-debug-args">
|
||||
<property name="version-output" value="java version "${ant.java.version}"/>
|
||||
<condition property="have-jdk-older-than-1.4">
|
||||
<or>
|
||||
<contains string="${version-output}" substring="java version "1.0"/>
|
||||
<contains string="${version-output}" substring="java version "1.1"/>
|
||||
<contains string="${version-output}" substring="java version "1.2"/>
|
||||
<contains string="${version-output}" substring="java version "1.3"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
|
||||
<istrue value="${have-jdk-older-than-1.4}"/>
|
||||
</condition>
|
||||
<condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
|
||||
<isset property="debug.transport"/>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-debug-args" name="-init-macrodef-debug">
|
||||
<macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<attribute default="${debug.classpath}" name="classpath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<jvmarg line="${debug-args-line}"/>
|
||||
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
|
||||
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
|
||||
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
<mapper from="run-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<customize/>
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-java">
|
||||
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<attribute default="${main.class}" name="classname"/>
|
||||
<attribute default="${run.classpath}" name="classpath"/>
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<java classname="@{classname}" dir="${work.dir}" fork="true">
|
||||
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
|
||||
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
|
||||
<jvmarg line="${run.jvmargs}"/>
|
||||
<classpath>
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="run-sys-prop."/>
|
||||
<mapper from="run-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<customize/>
|
||||
</java>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-macrodef-copylibs">
|
||||
<macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<element name="customize" optional="true"/>
|
||||
<sequential>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to=""/>
|
||||
</pathconvert>
|
||||
<pathconvert pathsep=" " property="jar.classpath">
|
||||
<path path="${run.classpath.without.build.classes.dir}"/>
|
||||
<chainedmapper>
|
||||
<flattenmapper/>
|
||||
<globmapper from="*" to="lib/*"/>
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
<customize/>
|
||||
</manifest>
|
||||
</copylibs>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
</target>
|
||||
<target name="-init-presetdef-jar">
|
||||
<presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
|
||||
<jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
|
||||
<j2seproject1:fileset dir="${build.classes.dir}"/>
|
||||
</jar>
|
||||
</presetdef>
|
||||
</target>
|
||||
<target name="-init-ap-cmdline-properties">
|
||||
<property name="annotation.processing.enabled" value="true"/>
|
||||
<property name="annotation.processing.processors.list" value=""/>
|
||||
<property name="annotation.processing.processor.options" value=""/>
|
||||
<property name="annotation.processing.run.all.processors" value="true"/>
|
||||
<property name="javac.processorpath" value="${javac.classpath}"/>
|
||||
<property name="javac.test.processorpath" value="${javac.test.classpath}"/>
|
||||
<condition property="ap.supported.internal" value="true">
|
||||
<not>
|
||||
<matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
|
||||
</not>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
|
||||
<condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
|
||||
<isfalse value="${annotation.processing.run.all.processors}"/>
|
||||
</condition>
|
||||
<condition else="" property="ap.proc.none.internal" value="-proc:none">
|
||||
<isfalse value="${annotation.processing.enabled}"/>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
|
||||
<property name="ap.cmd.line.internal" value=""/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
|
||||
<!--
|
||||
===================
|
||||
COMPILATION SECTION
|
||||
===================
|
||||
-->
|
||||
<target name="-deps-jar-init" unless="built-jar.properties">
|
||||
<property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
|
||||
<delete file="${built-jar.properties}" quiet="true"/>
|
||||
</target>
|
||||
<target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
|
||||
<echo level="warn" message="Cycle detected: ASDec was already built"/>
|
||||
</target>
|
||||
<target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
|
||||
<mkdir dir="${build.dir}"/>
|
||||
<touch file="${built-jar.properties}" verbose="false"/>
|
||||
<property file="${built-jar.properties}" prefix="already.built.jar."/>
|
||||
<antcall target="-warn-already-built-jar"/>
|
||||
<propertyfile file="${built-jar.properties}">
|
||||
<entry key="${basedir}" value=""/>
|
||||
</propertyfile>
|
||||
</target>
|
||||
<target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
|
||||
<target depends="init" name="-check-automatic-build">
|
||||
<available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
|
||||
</target>
|
||||
<target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
|
||||
<antcall target="clean"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar" name="-pre-pre-compile">
|
||||
<mkdir dir="${build.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-depend">
|
||||
<pathconvert property="build.generated.subdirs">
|
||||
<dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="*"/>
|
||||
</dirset>
|
||||
</pathconvert>
|
||||
<j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
|
||||
<j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
|
||||
<copy todir="${build.classes.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target if="has.persistence.xml" name="-copy-persistence-xml">
|
||||
<mkdir dir="${build.classes.dir}/META-INF"/>
|
||||
<copy todir="${build.classes.dir}/META-INF">
|
||||
<fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
|
||||
<target name="-pre-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile/>
|
||||
<j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
|
||||
<!--
|
||||
====================
|
||||
JAR BUILDING SECTION
|
||||
====================
|
||||
-->
|
||||
<target depends="init" name="-pre-pre-jar">
|
||||
<dirname file="${dist.jar}" property="dist.jar.dir"/>
|
||||
<mkdir dir="${dist.jar.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available">
|
||||
<j2seproject1:jar/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class">
|
||||
<j2seproject1:jar manifest="${manifest.file}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
|
||||
<j2seproject1:jar manifest="${manifest.file}">
|
||||
<j2seproject1:manifest>
|
||||
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
|
||||
</j2seproject1:manifest>
|
||||
</j2seproject1:jar>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<pathconvert property="run.classpath.with.dist.jar">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
|
||||
</pathconvert>
|
||||
<echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available+splashscreen.available" name="-do-jar-with-libraries-and-splashscreen">
|
||||
<basename file="${application.splash}" property="splashscreen.basename"/>
|
||||
<mkdir dir="${build.classes.dir}/META-INF"/>
|
||||
<copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
|
||||
<j2seproject3:copylibs>
|
||||
<customize>
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
<attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
|
||||
</customize>
|
||||
</j2seproject3:copylibs>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo>java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-init-macrodef-copylibs" if="do.archive+manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries" unless="splashscreen.available">
|
||||
<j2seproject3:copylibs>
|
||||
<customize>
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
</customize>
|
||||
</j2seproject3:copylibs>
|
||||
<echo>To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo>java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target name="-post-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries-and-splashscreen,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
|
||||
<!--
|
||||
=================
|
||||
EXECUTION SECTION
|
||||
=================
|
||||
-->
|
||||
<target depends="init,compile" description="Run a main class." name="run">
|
||||
<j2seproject1:java>
|
||||
<customize>
|
||||
<arg line="${application.args}"/>
|
||||
</customize>
|
||||
</j2seproject1:java>
|
||||
</target>
|
||||
<target name="-do-not-recompile">
|
||||
<property name="javac.includes.binary" value=""/>
|
||||
</target>
|
||||
<target depends="init,compile-single" name="run-single">
|
||||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single" name="run-test-with-main">
|
||||
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
|
||||
<j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
|
||||
</target>
|
||||
<!--
|
||||
=================
|
||||
DEBUGGING SECTION
|
||||
=================
|
||||
-->
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger">
|
||||
<j2seproject1:nbjpdastart name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
|
||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile" name="-debug-start-debuggee">
|
||||
<j2seproject3:debug>
|
||||
<customize>
|
||||
<arg line="${application.args}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
|
||||
<target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
|
||||
<j2seproject1:nbjpdastart stopclassname="${main.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
|
||||
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
|
||||
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
|
||||
<j2seproject3:debug classname="${debug.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
|
||||
<target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
|
||||
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
|
||||
<j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
|
||||
<target depends="init" name="-pre-debug-fix">
|
||||
<fail unless="fix.includes">Must set fix.includes</fail>
|
||||
<property name="javac.includes" value="${fix.includes}.java"/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
|
||||
<j2seproject1:nbjpdareload/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
|
||||
<!--
|
||||
===============
|
||||
JAVADOC SECTION
|
||||
===============
|
||||
-->
|
||||
<target depends="init" if="have.sources" name="-javadoc-build">
|
||||
<mkdir dir="${dist.javadoc.dir}"/>
|
||||
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
|
||||
<classpath>
|
||||
<path path="${javac.classpath}"/>
|
||||
</classpath>
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
<filename name="**/*.java"/>
|
||||
</fileset>
|
||||
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="**/*.java"/>
|
||||
</fileset>
|
||||
</javadoc>
|
||||
<copy todir="${dist.javadoc.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
<filename name="**/doc-files/**"/>
|
||||
</fileset>
|
||||
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
|
||||
<include name="**/doc-files/**"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
|
||||
<nbbrowse file="${dist.javadoc.dir}/index.html"/>
|
||||
</target>
|
||||
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
|
||||
<!--
|
||||
=========================
|
||||
JUNIT COMPILATION SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
|
||||
<mkdir dir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-pre-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-test-depend">
|
||||
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
|
||||
<target name="-pre-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
</target>
|
||||
<target name="-post-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
|
||||
<!--
|
||||
=======================
|
||||
JUNIT EXECUTION SECTION
|
||||
=======================
|
||||
-->
|
||||
<target depends="init" if="have.tests" name="-pre-test-run">
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
|
||||
<j2seproject3:junit testincludes="**/*Test.java"/>
|
||||
</target>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
|
||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init" if="have.tests" name="test-report"/>
|
||||
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
|
||||
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
|
||||
<target depends="init" if="have.tests" name="-pre-test-run-single">
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
|
||||
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
|
||||
<j2seproject3:junit excludes="" includes="${test.includes}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
|
||||
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
|
||||
<!--
|
||||
=======================
|
||||
JUNIT DEBUGGING SECTION
|
||||
=======================
|
||||
-->
|
||||
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
|
||||
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
|
||||
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
|
||||
<delete file="${test.report.file}"/>
|
||||
<mkdir dir="${build.test.results.dir}"/>
|
||||
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
|
||||
<customize>
|
||||
<syspropertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
<mapper from="test-sys-prop.*" to="*" type="glob"/>
|
||||
</syspropertyset>
|
||||
<arg value="${test.class}"/>
|
||||
<arg value="showoutput=true"/>
|
||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
|
||||
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
|
||||
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
|
||||
</target>
|
||||
<target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
|
||||
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
|
||||
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
|
||||
<!--
|
||||
=========================
|
||||
APPLET EXECUTION SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile-single" name="run-applet">
|
||||
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||
<j2seproject1:java classname="sun.applet.AppletViewer">
|
||||
<customize>
|
||||
<arg value="${applet.url}"/>
|
||||
</customize>
|
||||
</j2seproject1:java>
|
||||
</target>
|
||||
<!--
|
||||
=========================
|
||||
APPLET DEBUGGING SECTION
|
||||
=========================
|
||||
-->
|
||||
<target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
|
||||
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
|
||||
<j2seproject3:debug classname="sun.applet.AppletViewer">
|
||||
<customize>
|
||||
<arg value="${applet.url}"/>
|
||||
</customize>
|
||||
</j2seproject3:debug>
|
||||
</target>
|
||||
<target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
|
||||
<!--
|
||||
===============
|
||||
CLEANUP SECTION
|
||||
===============
|
||||
-->
|
||||
<target name="-deps-clean-init" unless="built-clean.properties">
|
||||
<property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
|
||||
<delete file="${built-clean.properties}" quiet="true"/>
|
||||
</target>
|
||||
<target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
|
||||
<echo level="warn" message="Cycle detected: ASDec was already built"/>
|
||||
</target>
|
||||
<target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
|
||||
<mkdir dir="${build.dir}"/>
|
||||
<touch file="${built-clean.properties}" verbose="false"/>
|
||||
<property file="${built-clean.properties}" prefix="already.built.clean."/>
|
||||
<antcall target="-warn-already-built-clean"/>
|
||||
<propertyfile file="${built-clean.properties}">
|
||||
<entry key="${basedir}" value=""/>
|
||||
</propertyfile>
|
||||
</target>
|
||||
<target depends="init" name="-do-clean">
|
||||
<delete dir="${build.dir}"/>
|
||||
<delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
|
||||
</target>
|
||||
<target name="-post-clean">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
|
||||
<target name="-check-call-dep">
|
||||
<property file="${call.built.properties}" prefix="already.built."/>
|
||||
<condition property="should.call.dep">
|
||||
<not>
|
||||
<isset property="already.built.${call.subproject}"/>
|
||||
</not>
|
||||
</condition>
|
||||
</target>
|
||||
<target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
|
||||
<ant antfile="${call.script}" inheritall="false" target="${call.target}">
|
||||
<propertyset>
|
||||
<propertyref prefix="transfer."/>
|
||||
<mapper from="transfer.*" to="*" type="glob"/>
|
||||
</propertyset>
|
||||
</ant>
|
||||
</target>
|
||||
</project>
|
||||
2
trunk/nbproject/configs/Basic_run.properties
Normal file
2
trunk/nbproject/configs/Basic_run.properties
Normal file
@@ -0,0 +1,2 @@
|
||||
$label=Basic run
|
||||
main.class=com.jpexs.asdec.Main
|
||||
1
trunk/nbproject/configs/Proxy.properties
Normal file
1
trunk/nbproject/configs/Proxy.properties
Normal file
@@ -0,0 +1 @@
|
||||
main.class=com.jpexs.asdec.Main
|
||||
1
trunk/nbproject/configs/as3.properties
Normal file
1
trunk/nbproject/configs/as3.properties
Normal file
@@ -0,0 +1 @@
|
||||
main.class=com.jpexs.asdec.Main
|
||||
1
trunk/nbproject/configs/as3_secure.swf.properties
Normal file
1
trunk/nbproject/configs/as3_secure.swf.properties
Normal file
@@ -0,0 +1 @@
|
||||
main.class=com.jpexs.asdec.Main
|
||||
8
trunk/nbproject/genfiles.properties
Normal file
8
trunk/nbproject/genfiles.properties
Normal file
@@ -0,0 +1,8 @@
|
||||
nbbuild.xml.data.CRC32=6767af7d
|
||||
nbbuild.xml.script.CRC32=36cc2633
|
||||
nbbuild.xml.stylesheet.CRC32=28e38971@1.38.2.45
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=6767af7d
|
||||
nbproject/build-impl.xml.script.CRC32=94147f4c
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=f33e10ff@1.38.2.45
|
||||
85
trunk/nbproject/project.properties
Normal file
85
trunk/nbproject/project.properties
Normal file
@@ -0,0 +1,85 @@
|
||||
annotation.processing.enabled=true
|
||||
annotation.processing.enabled.in.editor=false
|
||||
annotation.processing.run.all.processors=true
|
||||
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
|
||||
application.title=ASDec
|
||||
application.vendor=JPEXS
|
||||
build.classes.dir=${build.dir}/classes
|
||||
build.classes.excludes=**/*.java,**/*.form
|
||||
# This directory is removed when the project is cleaned:
|
||||
build.dir=build
|
||||
build.generated.dir=${build.dir}/generated
|
||||
build.generated.sources.dir=${build.dir}/generated-sources
|
||||
# Only compile against the classpath explicitly listed here:
|
||||
build.sysclasspath=ignore
|
||||
build.test.classes.dir=${build.dir}/test/classes
|
||||
build.test.results.dir=${build.dir}/test/results
|
||||
buildfile=nbbuild.xml
|
||||
# Uncomment to specify the preferred debugger connection transport:
|
||||
#debug.transport=dt_socket
|
||||
debug.classpath=\
|
||||
${run.classpath}
|
||||
debug.test.classpath=\
|
||||
${run.test.classpath}
|
||||
# This directory is removed when the project is cleaned:
|
||||
dist.dir=dist
|
||||
dist.jar=${dist.dir}/ASDec.jar
|
||||
dist.javadoc.dir=${dist.dir}/javadoc
|
||||
endorsed.classpath=
|
||||
excludes=
|
||||
file.reference.emma.jar=testlib\\emma.jar
|
||||
file.reference.emma_ant.jar=testlib\\emma_ant.jar
|
||||
file.reference.jpproxy.jar=lib\\jpproxy.jar
|
||||
file.reference.jsyntaxpane-0.9.5.jar=lib\\jsyntaxpane-0.9.5.jar
|
||||
file.reference.junit-4.8.2.jar=testlib\\junit-4.8.2.jar
|
||||
file.reference.trunk-src=src
|
||||
file.reference.trunk-test=test
|
||||
includes=**
|
||||
jar.compress=false
|
||||
javac.classpath=\
|
||||
${file.reference.jpproxy.jar}:\
|
||||
${file.reference.jsyntaxpane-0.9.5.jar}
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
javac.processorpath=\
|
||||
${javac.classpath}
|
||||
javac.source=1.5
|
||||
javac.target=1.5
|
||||
javac.test.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}:\
|
||||
${file.reference.emma.jar}:\
|
||||
${file.reference.emma_ant.jar}:\
|
||||
${file.reference.junit-4.8.2.jar}
|
||||
javac.test.processorpath=\
|
||||
${javac.test.classpath}
|
||||
javadoc.additionalparam=
|
||||
javadoc.author=false
|
||||
javadoc.encoding=${source.encoding}
|
||||
javadoc.noindex=false
|
||||
javadoc.nonavbar=false
|
||||
javadoc.notree=false
|
||||
javadoc.private=false
|
||||
javadoc.splitindex=true
|
||||
javadoc.use=true
|
||||
javadoc.version=false
|
||||
javadoc.windowtitle=
|
||||
main.class=
|
||||
manifest.file=manifest.mf
|
||||
meta.inf.dir=${src.dir}/META-INF
|
||||
platform.active=default_platform
|
||||
run.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}
|
||||
# Space-separated list of JVM arguments used when running the project
|
||||
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
|
||||
# or test-sys-prop.name=value to set system properties for unit tests):
|
||||
run.jvmargs=
|
||||
run.test.classpath=\
|
||||
${javac.test.classpath}:\
|
||||
${build.test.classes.dir}
|
||||
source.encoding=UTF-8
|
||||
src.dir=${file.reference.trunk-src}
|
||||
test.src.dir=${file.reference.trunk-test}
|
||||
project.license=gpl20
|
||||
15
trunk/nbproject/project.xml
Normal file
15
trunk/nbproject/project.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||
<type>org.netbeans.modules.java.j2seproject</type>
|
||||
<configuration>
|
||||
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<name>ASDec</name>
|
||||
<source-roots>
|
||||
<root id="src.dir"/>
|
||||
</source-roots>
|
||||
<test-roots>
|
||||
<root id="test.src.dir"/>
|
||||
</test-roots>
|
||||
</data>
|
||||
</configuration>
|
||||
</project>
|
||||
@@ -337,8 +337,12 @@ public class AVM2Code {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String toASMSource(ConstantPool constants) {
|
||||
public String toASMSource(ConstantPool constants,MethodBody body) {
|
||||
String ret = "";
|
||||
for(int e=0;e<body.exceptions.length;e++){
|
||||
ret+="exception "+e+" m["+body.exceptions[e].name_index+"]\""+Helper.escapeString(body.exceptions[e].getVarName(constants))+"\" "+
|
||||
"m["+body.exceptions[e].type_index+"]\""+Helper.escapeString(body.exceptions[e].getTypeName(constants))+"\"\n";
|
||||
}
|
||||
List<Long> offsets = new ArrayList<Long>();
|
||||
for (AVM2Instruction ins : code) {
|
||||
offsets.addAll(ins.getOffsets());
|
||||
@@ -348,6 +352,17 @@ public class AVM2Code {
|
||||
if (offsets.contains(ofs)) {
|
||||
ret += "ofs" + Helper.formatAddress(ofs) + ":";
|
||||
}
|
||||
for(int e=0;e<body.exceptions.length;e++){
|
||||
if(body.exceptions[e].start==ofs){
|
||||
ret+="exceptionstart "+e+":";
|
||||
}
|
||||
if(body.exceptions[e].end==ofs){
|
||||
ret+="exceptionend "+e+":";
|
||||
}
|
||||
if(body.exceptions[e].target==ofs){
|
||||
ret+="exceptiontarget "+e+":";
|
||||
}
|
||||
}
|
||||
ret += ins.toStringNoAddress(constants) + "\n";
|
||||
ofs += ins.getBytes().length;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ import com.jpexs.asdec.abc.avm2.AVM2Code;
|
||||
import com.jpexs.asdec.abc.avm2.ConstantPool;
|
||||
import com.jpexs.asdec.abc.avm2.instructions.AVM2Instruction;
|
||||
import com.jpexs.asdec.abc.avm2.instructions.InstructionDefinition;
|
||||
import com.jpexs.asdec.abc.types.ABCException;
|
||||
import com.jpexs.asdec.abc.types.MethodBody;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -62,15 +64,17 @@ public class ASM3Parser {
|
||||
}
|
||||
}
|
||||
|
||||
public static AVM2Code parse(InputStream is, ConstantPool constants) throws IOException, ParseException {
|
||||
return parse(is, constants, null);
|
||||
public static AVM2Code parse(InputStream is, ConstantPool constants,MethodBody body) throws IOException, ParseException {
|
||||
return parse(is, constants, null,body);
|
||||
}
|
||||
|
||||
public static AVM2Code parse(InputStream is, ConstantPool constants, MissingSymbolHandler missingHandler) throws IOException, ParseException {
|
||||
public static AVM2Code parse(InputStream is, ConstantPool constants, MissingSymbolHandler missingHandler,MethodBody body) throws IOException, ParseException {
|
||||
AVM2Code code = new AVM2Code();
|
||||
|
||||
List<OffsetItem> offsetItems = new ArrayList<OffsetItem>();
|
||||
List<LabelItem> labelItems = new ArrayList<LabelItem>();
|
||||
List<ABCException> exceptions=new ArrayList<ABCException>();
|
||||
List<Integer> exceptionIndices=new ArrayList<Integer>();
|
||||
int offset = 0;
|
||||
|
||||
Flasm3Lexer lexer = new Flasm3Lexer(is);
|
||||
@@ -79,6 +83,33 @@ public class ASM3Parser {
|
||||
AVM2Instruction lastIns = null;
|
||||
do {
|
||||
symb = lexer.yylex();
|
||||
if (symb.type == ParsedSymbol.TYPE_EXCEPTION_START){
|
||||
int exIndex=(Integer)symb.value;
|
||||
int listIndex=exceptionIndices.indexOf(exIndex);
|
||||
if(listIndex==-1){
|
||||
throw new ParseException("Undefinex exception index", lexer.yyline());
|
||||
}
|
||||
exceptions.get(listIndex).start=offset;
|
||||
continue;
|
||||
}
|
||||
if (symb.type == ParsedSymbol.TYPE_EXCEPTION_END){
|
||||
int exIndex=(Integer)symb.value;
|
||||
int listIndex=exceptionIndices.indexOf(exIndex);
|
||||
if(listIndex==-1){
|
||||
throw new ParseException("Undefinex exception index", lexer.yyline());
|
||||
}
|
||||
exceptions.get(listIndex).end=offset;
|
||||
continue;
|
||||
}
|
||||
if (symb.type == ParsedSymbol.TYPE_EXCEPTION_TARGET){
|
||||
int exIndex=(Integer)symb.value;
|
||||
int listIndex=exceptionIndices.indexOf(exIndex);
|
||||
if(listIndex==-1){
|
||||
throw new ParseException("Undefinex exception index", lexer.yyline());
|
||||
}
|
||||
exceptions.get(listIndex).target=offset;
|
||||
continue;
|
||||
}
|
||||
if (symb.type == ParsedSymbol.TYPE_EOF) break;
|
||||
if (symb.type == ParsedSymbol.TYPE_COMMENT) {
|
||||
if (lastIns != null) {
|
||||
@@ -87,6 +118,26 @@ public class ASM3Parser {
|
||||
continue;
|
||||
}
|
||||
if (symb.type == ParsedSymbol.TYPE_INSTRUCTION_NAME) {
|
||||
if(((String)symb.value).toLowerCase().equals("exception")){
|
||||
ParsedSymbol exIndex = lexer.yylex();
|
||||
if (exIndex.type != ParsedSymbol.TYPE_INTEGER) {
|
||||
throw new ParseException("Index expected", lexer.yyline());
|
||||
}
|
||||
ParsedSymbol exName = lexer.yylex();
|
||||
if (exName.type != ParsedSymbol.TYPE_MULTINAME) {
|
||||
throw new ParseException("Multiname expected", lexer.yyline());
|
||||
}
|
||||
ParsedSymbol exType = lexer.yylex();
|
||||
if (exType.type != ParsedSymbol.TYPE_MULTINAME) {
|
||||
throw new ParseException("Multiname expected", lexer.yyline());
|
||||
}
|
||||
ABCException ex=new ABCException();
|
||||
ex.name_index=(int) (long) (Long)exName.value;
|
||||
ex.type_index=(int) (long) (Long)exType.value;
|
||||
exceptions.add(ex);
|
||||
exceptionIndices.add((int)(long)(Long)exIndex.value);
|
||||
continue;
|
||||
}
|
||||
boolean insFound = false;
|
||||
for (InstructionDefinition def : AVM2Code.instructionSet) {
|
||||
if (def.instructionName.equals((String) symb.value)) {
|
||||
@@ -251,207 +302,10 @@ public class ASM3Parser {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* BufferedReader br = new BufferedReader(new InputStreamReader(is));
|
||||
String s = "";
|
||||
Pattern patInsName = Pattern.compile("^([a-z0-9_]+) ");
|
||||
Pattern patLabelName = Pattern.compile("^([a-zA-Z_0-9]+): ");
|
||||
Pattern patInt = Pattern.compile("^([+-]?[0-9]+) ");
|
||||
Pattern patDouble = Pattern.compile("^([+-]?[0-9e.]+) ");
|
||||
Pattern patMultiname = Pattern.compile("^m\\[([0-9]+)\\]\"[^\"]*\" ");
|
||||
Pattern patString = Pattern.compile("\"([^\"]*)\" ");
|
||||
Pattern patofs = Pattern.compile("^([a-zA-Z_0-9]+) ");
|
||||
|
||||
|
||||
long line = 0;
|
||||
|
||||
while ((s = br.readLine()) != null) {
|
||||
line++;
|
||||
s += " ";
|
||||
Matcher m = patInsName.matcher(s);
|
||||
if (m.find()) {
|
||||
String insName = m.group(1);
|
||||
boolean insFound = false;
|
||||
for (InstructionDefinition def : AVM2Code.instructionSet) {
|
||||
if (def.instructionName.equals(insName)) {
|
||||
insFound = true;
|
||||
s = s.substring(insName.length() + 1);
|
||||
List<Integer> operandsList = new ArrayList<Integer>();
|
||||
|
||||
for (int i = 0; i < def.operands.length; i++) {
|
||||
switch (def.operands[i]) {
|
||||
case AVM2Code.DAT_MULTINAME_INDEX:
|
||||
m = patMultiname.matcher(s);
|
||||
if (m.find()) {
|
||||
operandsList.add(Integer.parseInt(m.group(1)));
|
||||
s = s.substring(m.group(0).length());
|
||||
} else {
|
||||
throw new ParseException("Invalid multiname", line);
|
||||
}
|
||||
break;
|
||||
case AVM2Code.DAT_STRING_INDEX:
|
||||
m = patString.matcher(s);
|
||||
if (m.find()) {
|
||||
String str = m.group(1);
|
||||
int sid = constants.getStringId(str);
|
||||
if (sid == 0) {
|
||||
if((missingHandler!=null)&&(missingHandler.missingString(str))){
|
||||
sid=constants.addString(str);
|
||||
}else{
|
||||
throw new ParseException("Unknown String", line);
|
||||
}
|
||||
}
|
||||
operandsList.add(sid);
|
||||
s = s.substring(m.group(0).length());
|
||||
} else {
|
||||
throw new ParseException("Invalid String", line);
|
||||
}
|
||||
break;
|
||||
case AVM2Code.DAT_INT_INDEX:
|
||||
m = patInt.matcher(s);
|
||||
if (m.find()) {
|
||||
long intVal=Integer.parseInt(m.group(1));
|
||||
int iid = constants.getIntId(intVal);
|
||||
if (iid == 0) {
|
||||
if((missingHandler!=null)&&(missingHandler.missingInt(intVal))){
|
||||
iid=constants.addInt(intVal);
|
||||
}else{
|
||||
throw new ParseException("Unknown int", line);
|
||||
}
|
||||
}
|
||||
operandsList.add(iid);
|
||||
s = s.substring(m.group(0).length());
|
||||
} else {
|
||||
throw new ParseException("Invalid int value", line);
|
||||
}
|
||||
break;
|
||||
case AVM2Code.DAT_UINT_INDEX:
|
||||
m = patInt.matcher(s);
|
||||
if (m.find()) {
|
||||
long intVal=Integer.parseInt(m.group(1));
|
||||
int iid = constants.getUIntId(intVal);
|
||||
if (iid == 0) {
|
||||
if((missingHandler!=null)&&(missingHandler.missingUInt(intVal))){
|
||||
iid=constants.addUInt(intVal);
|
||||
}else{
|
||||
throw new ParseException("Unknown uint", line);
|
||||
}
|
||||
}
|
||||
operandsList.add(iid);
|
||||
s = s.substring(m.group(0).length());
|
||||
} else {
|
||||
throw new ParseException("Invalid uint value", line);
|
||||
}
|
||||
break;
|
||||
case AVM2Code.DAT_DOUBLE_INDEX:
|
||||
m = patDouble.matcher(s);
|
||||
if (m.find()) {
|
||||
double doubleVal=Double.parseDouble(m.group(1));
|
||||
int did = constants.getDoubleId(doubleVal);
|
||||
if (did == 0) {
|
||||
if((missingHandler!=null)&&(missingHandler.missingDouble(doubleVal))){
|
||||
did=constants.addDouble(doubleVal);
|
||||
}else{
|
||||
throw new ParseException("Unknown double", line);
|
||||
}
|
||||
}
|
||||
operandsList.add(did);
|
||||
s = s.substring(m.group(0).length());
|
||||
} else {
|
||||
throw new ParseException("Invalid double value", line);
|
||||
}
|
||||
break;
|
||||
case AVM2Code.DAT_OFFSET:
|
||||
m = patofs.matcher(s);
|
||||
if (m.find()) {
|
||||
offsetItems.add(new OffsetItem(m.group(1), code.code.size(), i));
|
||||
operandsList.add(0);
|
||||
s = s.substring(m.group(0).length());
|
||||
} else {
|
||||
throw new ParseException("Invalid offset value", line);
|
||||
}
|
||||
break;
|
||||
case AVM2Code.DAT_CASE_BASEOFFSET:
|
||||
m = patofs.matcher(s);
|
||||
if (m.find()) {
|
||||
offsetItems.add(new CaseOffsetItem(m.group(1), code.code.size(), i));
|
||||
operandsList.add(0);
|
||||
s = s.substring(m.group(0).length());
|
||||
} else {
|
||||
throw new ParseException("Invalid offset value", line);
|
||||
}
|
||||
break;
|
||||
case AVM2Code.OPT_CASE_OFFSETS:
|
||||
m = patInt.matcher(s);
|
||||
if (m.find()) {
|
||||
int patCount = Integer.parseInt(m.group(1));
|
||||
operandsList.add(patCount);
|
||||
s = s.substring(m.group(0).length());
|
||||
m = patofs.matcher(s);
|
||||
int k = 1;
|
||||
for (int c = 0; c <= patCount; c++) {
|
||||
if (m.find()) {
|
||||
offsetItems.add(new CaseOffsetItem(m.group(1), code.code.size(), i + k));
|
||||
operandsList.add(0);
|
||||
s = s.substring(m.group(0).length());
|
||||
m = patofs.matcher(s);
|
||||
k++;
|
||||
} else {
|
||||
throw new ParseException("Invalid case count", line);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
throw new ParseException("Invalid case count", line);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
m = patInt.matcher(s);
|
||||
if (m.find()) {
|
||||
operandsList.add(Integer.parseInt(m.group(1)));
|
||||
s = s.substring(m.group(0).length());
|
||||
} else {
|
||||
throw new ParseException("Invalid value", line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int operands[] = new int[operandsList.size()];
|
||||
for (int i = 0; i < operandsList.size(); i++) {
|
||||
operands[i] = operandsList.get(i);
|
||||
}
|
||||
AVM2Instruction ins = new AVM2Instruction(offset, def, operands, new byte[0]);
|
||||
code.code.add(ins);
|
||||
offset += ins.getBytes().length;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!insFound) {
|
||||
throw new ParseException("Invalid instruction name:" + insName, line);
|
||||
}
|
||||
} else {
|
||||
m = patLabelName.matcher(s);
|
||||
if (m.find()) {
|
||||
labelItems.add(new LabelItem(m.group(1), offset));
|
||||
} else {
|
||||
throw new ParseException("Invalid instruction name", line);
|
||||
}
|
||||
}
|
||||
body.exceptions=new ABCException[exceptions.size()];
|
||||
for(int e=0;e<exceptions.size();e++){
|
||||
body.exceptions[e]=exceptions.get(e);
|
||||
}
|
||||
|
||||
for (OffsetItem oi : offsetItems) {
|
||||
for (LabelItem li : labelItems) {
|
||||
if (oi.label.equals(li.label)) {
|
||||
AVM2Instruction ins = code.code.get((int) oi.insPosition);
|
||||
int relOffset = 0;
|
||||
if (oi instanceof CaseOffsetItem) {
|
||||
relOffset = li.offset - (int) ins.offset;
|
||||
} else {
|
||||
relOffset = li.offset - ((int) ins.offset + ins.getBytes().length);
|
||||
}
|
||||
ins.operands[oi.insOperandIndex] = relOffset;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -32,6 +32,9 @@ public class ParsedSymbol {
|
||||
public static final int TYPE_EOF = 7;
|
||||
public static final int TYPE_LABEL = 8;
|
||||
public static final int TYPE_COMMENT = 9;
|
||||
public static final int TYPE_EXCEPTION_START=10;
|
||||
public static final int TYPE_EXCEPTION_END=11;
|
||||
public static final int TYPE_EXCEPTION_TARGET=12;
|
||||
|
||||
public ParsedSymbol(int type, Object value) {
|
||||
this.type = type;
|
||||
|
||||
@@ -61,6 +61,8 @@ Label = {Identifier}:
|
||||
|
||||
/* integer literals */
|
||||
NumberLiteral = 0 | -?[1-9][0-9]*
|
||||
|
||||
PositiveNumberLiteral = 0 | [1-9][0-9]*
|
||||
|
||||
/* floating point literals */
|
||||
FloatLiteral = -?({FLit1}|{FLit2}|{FLit3}) {Exponent}?
|
||||
@@ -75,6 +77,10 @@ OctDigit = [0-7]
|
||||
/* string and character literals */
|
||||
StringCharacter = [^\r\n\"\\]
|
||||
|
||||
ExceptionStart = "exceptionstart "{PositiveNumberLiteral}":"
|
||||
ExceptionEnd = "exceptionend "{PositiveNumberLiteral}":"
|
||||
ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":"
|
||||
|
||||
%state STRING,PARAMETERS
|
||||
|
||||
%%
|
||||
@@ -85,6 +91,18 @@ StringCharacter = [^\r\n\"\\]
|
||||
/* whitespace */
|
||||
{WhiteSpace} { }
|
||||
|
||||
{ExceptionStart} {
|
||||
String s=yytext();
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_START,Integer.parseInt(s.substring(15,s.length()-1)));
|
||||
}
|
||||
{ExceptionEnd} {
|
||||
String s=yytext();
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_END,Integer.parseInt(s.substring(13,s.length()-1)));
|
||||
}
|
||||
{ExceptionTarget} {
|
||||
String s=yytext();
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_TARGET,Integer.parseInt(s.substring(16,s.length()-1)));
|
||||
}
|
||||
{Label} {
|
||||
String s=yytext();
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_LABEL,s.substring(0,s.length()-1));
|
||||
|
||||
@@ -44,7 +44,7 @@ public class ASMSourceEditorPane extends JEditorPane {
|
||||
public void setBodyIndex(int bodyIndex, ABC abc) {
|
||||
this.bodyIndex = bodyIndex;
|
||||
this.abc = abc;
|
||||
setText(abc.bodies[bodyIndex].code.toASMSource(abc.constants));
|
||||
setText(abc.bodies[bodyIndex].code.toASMSource(abc.constants,abc.bodies[bodyIndex]));
|
||||
}
|
||||
|
||||
public void graph(){
|
||||
@@ -53,7 +53,7 @@ public class ASMSourceEditorPane extends JEditorPane {
|
||||
|
||||
public void save(ConstantPool constants) {
|
||||
try {
|
||||
AVM2Code acode = ASM3Parser.parse(new ByteArrayInputStream(getText().getBytes()), constants, new DialogMissingSymbolHandler());
|
||||
AVM2Code acode = ASM3Parser.parse(new ByteArrayInputStream(getText().getBytes()), constants, new DialogMissingSymbolHandler(),abc.bodies[bodyIndex]);
|
||||
abc.bodies[bodyIndex].code = acode;
|
||||
Main.abcMainFrame.decompiledTextArea.reloadClass();
|
||||
Main.abcMainFrame.decompiledTextArea.gotoLastTrait();
|
||||
@@ -68,14 +68,13 @@ public class ASMSourceEditorPane extends JEditorPane {
|
||||
|
||||
public void verify(ConstantPool constants, ABC abc) {
|
||||
try {
|
||||
AVM2Code acode = ASM3Parser.parse(new ByteArrayInputStream(getText().getBytes()), constants, new DialogMissingSymbolHandler());
|
||||
acode.clearSecureSWF(abc.constants, abc.bodies[bodyIndex]);
|
||||
setText(acode.toASMSource(constants));
|
||||
AVM2Code acode = ASM3Parser.parse(new ByteArrayInputStream(getText().getBytes()), constants, new DialogMissingSymbolHandler(),abc.bodies[bodyIndex]);
|
||||
//acode.clearSecureSWF(abc.constants, abc.bodies[bodyIndex]);
|
||||
setText(acode.toASMSource(constants,abc.bodies[bodyIndex]));
|
||||
|
||||
|
||||
//Main.mainFrame.decompiledTextArea.setBody(mb, abc);
|
||||
} catch (IOException ex) {
|
||||
} catch (ConvertException ex) {
|
||||
} catch (ParseException ex) {
|
||||
JOptionPane.showMessageDialog(this, (ex.text + " on line " + ex.line));
|
||||
selectLine((int) ex.line);
|
||||
|
||||
BIN
trunk/testdata/as2.fla
vendored
Normal file
BIN
trunk/testdata/as2.fla
vendored
Normal file
Binary file not shown.
318
trunk/testdata/as2.html
vendored
Normal file
318
trunk/testdata/as2.html
vendored
Normal file
@@ -0,0 +1,318 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
|
||||
<title>as2</title>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
//v1.7
|
||||
// Flash Player Version Detection
|
||||
// Detect Client Browser type
|
||||
// Copyright 2005-2008 Adobe Systems Incorporated. All rights reserved.
|
||||
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
|
||||
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
|
||||
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
|
||||
function ControlVersion()
|
||||
{
|
||||
var version;
|
||||
var axo;
|
||||
var e;
|
||||
// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
|
||||
try {
|
||||
// version will be set for 7.X or greater players
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 6.X players only
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
|
||||
|
||||
// installed player is some revision of 6.0
|
||||
// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
|
||||
// so we have to be careful.
|
||||
|
||||
// default to the first public version
|
||||
version = "WIN 6,0,21,0";
|
||||
// throws if AllowScripAccess does not exist (introduced in 6.0r47)
|
||||
axo.AllowScriptAccess = "always";
|
||||
// safe to call for 6.0r47 or greater
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 4.X or 5.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 3.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
||||
version = "WIN 3,0,18,0";
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 2.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
|
||||
version = "WIN 2,0,0,11";
|
||||
} catch (e) {
|
||||
version = -1;
|
||||
}
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
// JavaScript helper required to detect Flash Player PlugIn version information
|
||||
function GetSwfVer(){
|
||||
// NS/Opera version >= 3 check for Flash plugin in plugin array
|
||||
var flashVer = -1;
|
||||
|
||||
if (navigator.plugins != null && navigator.plugins.length > 0) {
|
||||
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
|
||||
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
|
||||
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
|
||||
var descArray = flashDescription.split(" ");
|
||||
var tempArrayMajor = descArray[2].split(".");
|
||||
var versionMajor = tempArrayMajor[0];
|
||||
var versionMinor = tempArrayMajor[1];
|
||||
var versionRevision = descArray[3];
|
||||
if (versionRevision == "") {
|
||||
versionRevision = descArray[4];
|
||||
}
|
||||
if (versionRevision[0] == "d") {
|
||||
versionRevision = versionRevision.substring(1);
|
||||
} else if (versionRevision[0] == "r") {
|
||||
versionRevision = versionRevision.substring(1);
|
||||
if (versionRevision.indexOf("d") > 0) {
|
||||
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
|
||||
}
|
||||
}
|
||||
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
|
||||
}
|
||||
}
|
||||
// MSN/WebTV 2.6 supports Flash 4
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
|
||||
// WebTV 2.5 supports Flash 3
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
|
||||
// older WebTV supports Flash 2
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
|
||||
else if ( isIE && isWin && !isOpera ) {
|
||||
flashVer = ControlVersion();
|
||||
}
|
||||
return flashVer;
|
||||
}
|
||||
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
|
||||
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
|
||||
{
|
||||
versionStr = GetSwfVer();
|
||||
if (versionStr == -1 ) {
|
||||
return false;
|
||||
} else if (versionStr != 0) {
|
||||
if(isIE && isWin && !isOpera) {
|
||||
// Given "WIN 2,0,0,11"
|
||||
tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
|
||||
tempString = tempArray[1]; // "2,0,0,11"
|
||||
versionArray = tempString.split(","); // ['2', '0', '0', '11']
|
||||
} else {
|
||||
versionArray = versionStr.split(".");
|
||||
}
|
||||
var versionMajor = versionArray[0];
|
||||
var versionMinor = versionArray[1];
|
||||
var versionRevision = versionArray[2];
|
||||
// is the major.revision >= requested major.revision AND the minor version >= requested minor
|
||||
if (versionMajor > parseFloat(reqMajorVer)) {
|
||||
return true;
|
||||
} else if (versionMajor == parseFloat(reqMajorVer)) {
|
||||
if (versionMinor > parseFloat(reqMinorVer))
|
||||
return true;
|
||||
else if (versionMinor == parseFloat(reqMinorVer)) {
|
||||
if (versionRevision >= parseFloat(reqRevision))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function AC_AddExtension(src, ext)
|
||||
{
|
||||
if (src.indexOf('?') != -1)
|
||||
return src.replace(/\?/, ext+'?');
|
||||
else
|
||||
return src + ext;
|
||||
}
|
||||
function AC_Generateobj(objAttrs, params, embedAttrs)
|
||||
{
|
||||
var str = '';
|
||||
if (isIE && isWin && !isOpera)
|
||||
{
|
||||
str += '<object ';
|
||||
for (var i in objAttrs)
|
||||
{
|
||||
str += i + '="' + objAttrs[i] + '" ';
|
||||
}
|
||||
str += '>';
|
||||
for (var i in params)
|
||||
{
|
||||
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
|
||||
}
|
||||
str += '</object>';
|
||||
}
|
||||
else
|
||||
{
|
||||
str += '<embed ';
|
||||
for (var i in embedAttrs)
|
||||
{
|
||||
str += i + '="' + embedAttrs[i] + '" ';
|
||||
}
|
||||
str += '> </embed>';
|
||||
}
|
||||
document.write(str);
|
||||
}
|
||||
function AC_FL_RunContent(){
|
||||
var ret =
|
||||
AC_GetArgs
|
||||
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
|
||||
, "application/x-shockwave-flash"
|
||||
);
|
||||
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
|
||||
}
|
||||
function AC_SW_RunContent(){
|
||||
var ret =
|
||||
AC_GetArgs
|
||||
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
|
||||
, null
|
||||
);
|
||||
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
|
||||
}
|
||||
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
|
||||
var ret = new Object();
|
||||
ret.embedAttrs = new Object();
|
||||
ret.params = new Object();
|
||||
ret.objAttrs = new Object();
|
||||
for (var i=0; i < args.length; i=i+2){
|
||||
var currArg = args[i].toLowerCase();
|
||||
switch (currArg){
|
||||
case "classid":
|
||||
break;
|
||||
case "pluginspage":
|
||||
ret.embedAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
case "src":
|
||||
case "movie":
|
||||
args[i+1] = AC_AddExtension(args[i+1], ext);
|
||||
ret.embedAttrs["src"] = args[i+1];
|
||||
ret.params[srcParamName] = args[i+1];
|
||||
break;
|
||||
case "onafterupdate":
|
||||
case "onbeforeupdate":
|
||||
case "onblur":
|
||||
case "oncellchange":
|
||||
case "onclick":
|
||||
case "ondblclick":
|
||||
case "ondrag":
|
||||
case "ondragend":
|
||||
case "ondragenter":
|
||||
case "ondragleave":
|
||||
case "ondragover":
|
||||
case "ondrop":
|
||||
case "onfinish":
|
||||
case "onfocus":
|
||||
case "onhelp":
|
||||
case "onmousedown":
|
||||
case "onmouseup":
|
||||
case "onmouseover":
|
||||
case "onmousemove":
|
||||
case "onmouseout":
|
||||
case "onkeypress":
|
||||
case "onkeydown":
|
||||
case "onkeyup":
|
||||
case "onload":
|
||||
case "onlosecapture":
|
||||
case "onpropertychange":
|
||||
case "onreadystatechange":
|
||||
case "onrowsdelete":
|
||||
case "onrowenter":
|
||||
case "onrowexit":
|
||||
case "onrowsinserted":
|
||||
case "onstart":
|
||||
case "onscroll":
|
||||
case "onbeforeeditfocus":
|
||||
case "onactivate":
|
||||
case "onbeforedeactivate":
|
||||
case "ondeactivate":
|
||||
case "type":
|
||||
case "codebase":
|
||||
case "id":
|
||||
ret.objAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
case "width":
|
||||
case "height":
|
||||
case "align":
|
||||
case "vspace":
|
||||
case "hspace":
|
||||
case "class":
|
||||
case "title":
|
||||
case "accesskey":
|
||||
case "name":
|
||||
case "tabindex":
|
||||
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
default:
|
||||
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
|
||||
}
|
||||
}
|
||||
ret.objAttrs["classid"] = classid;
|
||||
if (mimeType) ret.embedAttrs["type"] = mimeType;
|
||||
return ret;
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
</head>
|
||||
<body bgcolor="#ffffff">
|
||||
<!--url's used in the movie-->
|
||||
<!--text used in the movie-->
|
||||
<!-- saved from url=(0013)about:internet -->
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
AC_FL_RunContent(
|
||||
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
|
||||
'width', '550',
|
||||
'height', '400',
|
||||
'src', 'as2',
|
||||
'quality', 'high',
|
||||
'pluginspage', 'http://www.adobe.com/go/getflashplayer',
|
||||
'align', 'middle',
|
||||
'play', 'true',
|
||||
'loop', 'true',
|
||||
'scale', 'showall',
|
||||
'wmode', 'window',
|
||||
'devicefont', 'false',
|
||||
'id', 'as2',
|
||||
'bgcolor', '#ffffff',
|
||||
'name', 'as2',
|
||||
'menu', 'true',
|
||||
'allowFullScreen', 'false',
|
||||
'allowScriptAccess','sameDomain',
|
||||
'movie', 'as2',
|
||||
'salign', ''
|
||||
); //end AC code
|
||||
</script>
|
||||
<noscript>
|
||||
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="550" height="400" id="as2" align="middle">
|
||||
<param name="allowScriptAccess" value="sameDomain" />
|
||||
<param name="allowFullScreen" value="false" />
|
||||
<param name="movie" value="as2.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="as2.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="as2" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
|
||||
</object>
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
||||
BIN
trunk/testdata/as2.swf
vendored
Normal file
BIN
trunk/testdata/as2.swf
vendored
Normal file
Binary file not shown.
BIN
trunk/testdata/as3.fla
vendored
Normal file
BIN
trunk/testdata/as3.fla
vendored
Normal file
Binary file not shown.
318
trunk/testdata/as3.html
vendored
Normal file
318
trunk/testdata/as3.html
vendored
Normal file
@@ -0,0 +1,318 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
|
||||
<title>as3</title>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
<!--
|
||||
//v1.7
|
||||
// Flash Player Version Detection
|
||||
// Detect Client Browser type
|
||||
// Copyright 2005-2008 Adobe Systems Incorporated. All rights reserved.
|
||||
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
|
||||
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
|
||||
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
|
||||
function ControlVersion()
|
||||
{
|
||||
var version;
|
||||
var axo;
|
||||
var e;
|
||||
// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
|
||||
try {
|
||||
// version will be set for 7.X or greater players
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 6.X players only
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
|
||||
|
||||
// installed player is some revision of 6.0
|
||||
// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
|
||||
// so we have to be careful.
|
||||
|
||||
// default to the first public version
|
||||
version = "WIN 6,0,21,0";
|
||||
// throws if AllowScripAccess does not exist (introduced in 6.0r47)
|
||||
axo.AllowScriptAccess = "always";
|
||||
// safe to call for 6.0r47 or greater
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 4.X or 5.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
||||
version = axo.GetVariable("$version");
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 3.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
|
||||
version = "WIN 3,0,18,0";
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
if (!version)
|
||||
{
|
||||
try {
|
||||
// version will be set for 2.X player
|
||||
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
|
||||
version = "WIN 2,0,0,11";
|
||||
} catch (e) {
|
||||
version = -1;
|
||||
}
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
// JavaScript helper required to detect Flash Player PlugIn version information
|
||||
function GetSwfVer(){
|
||||
// NS/Opera version >= 3 check for Flash plugin in plugin array
|
||||
var flashVer = -1;
|
||||
|
||||
if (navigator.plugins != null && navigator.plugins.length > 0) {
|
||||
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
|
||||
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
|
||||
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
|
||||
var descArray = flashDescription.split(" ");
|
||||
var tempArrayMajor = descArray[2].split(".");
|
||||
var versionMajor = tempArrayMajor[0];
|
||||
var versionMinor = tempArrayMajor[1];
|
||||
var versionRevision = descArray[3];
|
||||
if (versionRevision == "") {
|
||||
versionRevision = descArray[4];
|
||||
}
|
||||
if (versionRevision[0] == "d") {
|
||||
versionRevision = versionRevision.substring(1);
|
||||
} else if (versionRevision[0] == "r") {
|
||||
versionRevision = versionRevision.substring(1);
|
||||
if (versionRevision.indexOf("d") > 0) {
|
||||
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
|
||||
}
|
||||
}
|
||||
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
|
||||
}
|
||||
}
|
||||
// MSN/WebTV 2.6 supports Flash 4
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
|
||||
// WebTV 2.5 supports Flash 3
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
|
||||
// older WebTV supports Flash 2
|
||||
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
|
||||
else if ( isIE && isWin && !isOpera ) {
|
||||
flashVer = ControlVersion();
|
||||
}
|
||||
return flashVer;
|
||||
}
|
||||
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
|
||||
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
|
||||
{
|
||||
versionStr = GetSwfVer();
|
||||
if (versionStr == -1 ) {
|
||||
return false;
|
||||
} else if (versionStr != 0) {
|
||||
if(isIE && isWin && !isOpera) {
|
||||
// Given "WIN 2,0,0,11"
|
||||
tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
|
||||
tempString = tempArray[1]; // "2,0,0,11"
|
||||
versionArray = tempString.split(","); // ['2', '0', '0', '11']
|
||||
} else {
|
||||
versionArray = versionStr.split(".");
|
||||
}
|
||||
var versionMajor = versionArray[0];
|
||||
var versionMinor = versionArray[1];
|
||||
var versionRevision = versionArray[2];
|
||||
// is the major.revision >= requested major.revision AND the minor version >= requested minor
|
||||
if (versionMajor > parseFloat(reqMajorVer)) {
|
||||
return true;
|
||||
} else if (versionMajor == parseFloat(reqMajorVer)) {
|
||||
if (versionMinor > parseFloat(reqMinorVer))
|
||||
return true;
|
||||
else if (versionMinor == parseFloat(reqMinorVer)) {
|
||||
if (versionRevision >= parseFloat(reqRevision))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function AC_AddExtension(src, ext)
|
||||
{
|
||||
if (src.indexOf('?') != -1)
|
||||
return src.replace(/\?/, ext+'?');
|
||||
else
|
||||
return src + ext;
|
||||
}
|
||||
function AC_Generateobj(objAttrs, params, embedAttrs)
|
||||
{
|
||||
var str = '';
|
||||
if (isIE && isWin && !isOpera)
|
||||
{
|
||||
str += '<object ';
|
||||
for (var i in objAttrs)
|
||||
{
|
||||
str += i + '="' + objAttrs[i] + '" ';
|
||||
}
|
||||
str += '>';
|
||||
for (var i in params)
|
||||
{
|
||||
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
|
||||
}
|
||||
str += '</object>';
|
||||
}
|
||||
else
|
||||
{
|
||||
str += '<embed ';
|
||||
for (var i in embedAttrs)
|
||||
{
|
||||
str += i + '="' + embedAttrs[i] + '" ';
|
||||
}
|
||||
str += '> </embed>';
|
||||
}
|
||||
document.write(str);
|
||||
}
|
||||
function AC_FL_RunContent(){
|
||||
var ret =
|
||||
AC_GetArgs
|
||||
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
|
||||
, "application/x-shockwave-flash"
|
||||
);
|
||||
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
|
||||
}
|
||||
function AC_SW_RunContent(){
|
||||
var ret =
|
||||
AC_GetArgs
|
||||
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
|
||||
, null
|
||||
);
|
||||
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
|
||||
}
|
||||
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
|
||||
var ret = new Object();
|
||||
ret.embedAttrs = new Object();
|
||||
ret.params = new Object();
|
||||
ret.objAttrs = new Object();
|
||||
for (var i=0; i < args.length; i=i+2){
|
||||
var currArg = args[i].toLowerCase();
|
||||
switch (currArg){
|
||||
case "classid":
|
||||
break;
|
||||
case "pluginspage":
|
||||
ret.embedAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
case "src":
|
||||
case "movie":
|
||||
args[i+1] = AC_AddExtension(args[i+1], ext);
|
||||
ret.embedAttrs["src"] = args[i+1];
|
||||
ret.params[srcParamName] = args[i+1];
|
||||
break;
|
||||
case "onafterupdate":
|
||||
case "onbeforeupdate":
|
||||
case "onblur":
|
||||
case "oncellchange":
|
||||
case "onclick":
|
||||
case "ondblclick":
|
||||
case "ondrag":
|
||||
case "ondragend":
|
||||
case "ondragenter":
|
||||
case "ondragleave":
|
||||
case "ondragover":
|
||||
case "ondrop":
|
||||
case "onfinish":
|
||||
case "onfocus":
|
||||
case "onhelp":
|
||||
case "onmousedown":
|
||||
case "onmouseup":
|
||||
case "onmouseover":
|
||||
case "onmousemove":
|
||||
case "onmouseout":
|
||||
case "onkeypress":
|
||||
case "onkeydown":
|
||||
case "onkeyup":
|
||||
case "onload":
|
||||
case "onlosecapture":
|
||||
case "onpropertychange":
|
||||
case "onreadystatechange":
|
||||
case "onrowsdelete":
|
||||
case "onrowenter":
|
||||
case "onrowexit":
|
||||
case "onrowsinserted":
|
||||
case "onstart":
|
||||
case "onscroll":
|
||||
case "onbeforeeditfocus":
|
||||
case "onactivate":
|
||||
case "onbeforedeactivate":
|
||||
case "ondeactivate":
|
||||
case "type":
|
||||
case "codebase":
|
||||
case "id":
|
||||
ret.objAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
case "width":
|
||||
case "height":
|
||||
case "align":
|
||||
case "vspace":
|
||||
case "hspace":
|
||||
case "class":
|
||||
case "title":
|
||||
case "accesskey":
|
||||
case "name":
|
||||
case "tabindex":
|
||||
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
|
||||
break;
|
||||
default:
|
||||
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
|
||||
}
|
||||
}
|
||||
ret.objAttrs["classid"] = classid;
|
||||
if (mimeType) ret.embedAttrs["type"] = mimeType;
|
||||
return ret;
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
</head>
|
||||
<body bgcolor="#ffffff">
|
||||
<!--url's used in the movie-->
|
||||
<!--text used in the movie-->
|
||||
<!-- saved from url=(0013)about:internet -->
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
AC_FL_RunContent(
|
||||
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
|
||||
'width', '550',
|
||||
'height', '400',
|
||||
'src', 'as3',
|
||||
'quality', 'high',
|
||||
'pluginspage', 'http://www.adobe.com/go/getflashplayer',
|
||||
'align', 'middle',
|
||||
'play', 'true',
|
||||
'loop', 'true',
|
||||
'scale', 'showall',
|
||||
'wmode', 'window',
|
||||
'devicefont', 'false',
|
||||
'id', 'as3',
|
||||
'bgcolor', '#ffffff',
|
||||
'name', 'as3',
|
||||
'menu', 'true',
|
||||
'allowFullScreen', 'false',
|
||||
'allowScriptAccess','sameDomain',
|
||||
'movie', 'as3',
|
||||
'salign', ''
|
||||
); //end AC code
|
||||
</script>
|
||||
<noscript>
|
||||
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="550" height="400" id="as3" align="middle">
|
||||
<param name="allowScriptAccess" value="sameDomain" />
|
||||
<param name="allowFullScreen" value="false" />
|
||||
<param name="movie" value="as3.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="as3.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="as3" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
|
||||
</object>
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
||||
BIN
trunk/testdata/as3.swf
vendored
Normal file
BIN
trunk/testdata/as3.swf
vendored
Normal file
Binary file not shown.
313
trunk/testdata/classes/Test.as
vendored
Normal file
313
trunk/testdata/classes/Test.as
vendored
Normal file
@@ -0,0 +1,313 @@
|
||||
package classes {
|
||||
|
||||
public class Test {
|
||||
private var testPriv:int=5;
|
||||
protected var testProt:int=9;
|
||||
|
||||
|
||||
public function testHello(){
|
||||
trace("hello");
|
||||
}
|
||||
|
||||
public function testIncDec() {
|
||||
var a=5;
|
||||
var b=0;
|
||||
trace("++var");
|
||||
b=++a;
|
||||
trace("var++");
|
||||
b=a++;
|
||||
trace("--var");
|
||||
b=--a;
|
||||
trace("var--");
|
||||
b=a--;
|
||||
var c=[1,2,3,4,5];
|
||||
trace("++arr");
|
||||
b=++c[2];
|
||||
trace("arr++");
|
||||
b=c[2]++;
|
||||
trace("--arr");
|
||||
b=--c[2];
|
||||
trace("arr--");
|
||||
b=c[2]--;
|
||||
|
||||
var d=new TestClass1();
|
||||
trace("++property");
|
||||
trace(++d.attrib);
|
||||
trace("property++");
|
||||
trace(d.attrib++);
|
||||
trace("--property");
|
||||
trace(--d.attrib);
|
||||
trace("property--");
|
||||
trace(d.attrib--);
|
||||
return;
|
||||
}
|
||||
public function testDoWhile() {
|
||||
var a=8;
|
||||
do
|
||||
{
|
||||
trace("a="+a);
|
||||
a++;
|
||||
}
|
||||
while(a<20);
|
||||
return;
|
||||
}
|
||||
public function testInnerTry(){
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
trace("try body 1");
|
||||
}
|
||||
catch(e:DefinitionError)
|
||||
{
|
||||
trace("catched DefinitionError");
|
||||
}
|
||||
trace("after try 1");
|
||||
}
|
||||
catch(e:Error)
|
||||
{
|
||||
trace("catched Error");
|
||||
}
|
||||
finally
|
||||
{
|
||||
trace("finally block");
|
||||
}
|
||||
}
|
||||
public function testWhileContinue() {
|
||||
var a=5;
|
||||
while(true)
|
||||
{
|
||||
if(a==9)
|
||||
{
|
||||
if(a==8)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if(a==9)
|
||||
{
|
||||
break;
|
||||
}
|
||||
trace("hello 1");
|
||||
}
|
||||
trace("hello2");
|
||||
}
|
||||
return;
|
||||
}
|
||||
public function testPrecedence() {
|
||||
var a=0;
|
||||
a=(5+6)*7;
|
||||
a=5*(2+3);
|
||||
a=5+6*7;
|
||||
a=5*2+2;
|
||||
trace("a="+a);
|
||||
return;
|
||||
}
|
||||
public function testStrings() {
|
||||
trace("hello");
|
||||
trace("quotes:\"hello!\"");
|
||||
trace("backslash: \\ ");
|
||||
trace("single quotes: \'hello!\'");
|
||||
trace("new line \r\n hello!");
|
||||
}
|
||||
public function tryContinueLevels() {
|
||||
var a=5;
|
||||
loop123:
|
||||
switch(a)
|
||||
{
|
||||
case 57*a:
|
||||
trace("fiftyseven multiply a");
|
||||
var b=0;
|
||||
while(b<50)
|
||||
{
|
||||
if(b==10)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(b==15)
|
||||
{
|
||||
break loop123;
|
||||
}
|
||||
b=b+1;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
trace("thirteen");
|
||||
case 14:
|
||||
trace("fourteen");
|
||||
break;
|
||||
case 89:
|
||||
trace("eightynine");
|
||||
break;
|
||||
default:
|
||||
trace("default clause");
|
||||
}
|
||||
|
||||
loop182:
|
||||
for(var c=0;c<8;c=c+1)
|
||||
{
|
||||
|
||||
loop165:
|
||||
for(var d=0;d<25;d++)
|
||||
{
|
||||
|
||||
for(var e=0;e<50;e++)
|
||||
{
|
||||
if(e==9)
|
||||
{
|
||||
break loop165;
|
||||
}
|
||||
if(e==20)
|
||||
{
|
||||
continue loop182;
|
||||
}
|
||||
if(e==8)
|
||||
{
|
||||
break;
|
||||
}
|
||||
break loop182;
|
||||
}
|
||||
}
|
||||
trace("hello");
|
||||
}
|
||||
}
|
||||
public function testSwitchDefault(){
|
||||
var a=5;
|
||||
switch(a)
|
||||
{
|
||||
case 57*a:
|
||||
trace("fiftyseven multiply a");
|
||||
break;
|
||||
case 13:
|
||||
trace("thirteen");
|
||||
case 14:
|
||||
trace("fourteen");
|
||||
break;
|
||||
case 89:
|
||||
trace("eightynine");
|
||||
break;
|
||||
default:
|
||||
trace("default clause");
|
||||
}
|
||||
}
|
||||
public function testMultipleCondition(){
|
||||
var a=5;
|
||||
var b=8;
|
||||
var c=9;
|
||||
if((a<=4||b<=8)&&c==7)
|
||||
{
|
||||
trace("onTrue");
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("onFalse");
|
||||
}
|
||||
}
|
||||
public function testForBreak(){
|
||||
for(var a=0;a<10;a++)
|
||||
{
|
||||
if(a==5)
|
||||
{
|
||||
break;
|
||||
}
|
||||
trace("hello:"+a);
|
||||
}
|
||||
}
|
||||
|
||||
public function testIf(){
|
||||
var a=5;
|
||||
if(a==7)
|
||||
{
|
||||
trace("onTrue");
|
||||
}
|
||||
}
|
||||
|
||||
public function testIfElse(){
|
||||
var a=5;
|
||||
if(a==7)
|
||||
{
|
||||
trace("onTrue");
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("onFalse");
|
||||
}
|
||||
}
|
||||
public function testFor() {
|
||||
for(var a=0;a<10;a++)
|
||||
{
|
||||
trace("a="+a);
|
||||
}
|
||||
}
|
||||
public function testForContinue() {
|
||||
for(var a=0;a<10;a=a+1)
|
||||
{
|
||||
if(a==9)
|
||||
{
|
||||
if(a==5)
|
||||
{
|
||||
trace("part1");
|
||||
continue;
|
||||
}
|
||||
trace("a="+a);
|
||||
if(a==7)
|
||||
{
|
||||
trace("part2");
|
||||
continue;
|
||||
}
|
||||
trace("part3");
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("part4");
|
||||
}
|
||||
trace("part5");
|
||||
}
|
||||
}
|
||||
public function testTry() {
|
||||
var i:int;
|
||||
i=7;
|
||||
try
|
||||
{
|
||||
trace("try body");
|
||||
}
|
||||
catch(e:DefinitionError)
|
||||
{
|
||||
trace("catched DefinitionError");
|
||||
}
|
||||
catch(e:Error)
|
||||
{
|
||||
trace("Error message:"+e.message);
|
||||
trace("Stacktrace:"+e.getStackTrace());
|
||||
}
|
||||
finally
|
||||
{
|
||||
trace("Finally part");
|
||||
}
|
||||
}
|
||||
public function testSwitch(){
|
||||
var a=5;
|
||||
switch(a)
|
||||
{
|
||||
case 57*a:
|
||||
trace("fiftyseven multiply a");
|
||||
break;
|
||||
case 13:
|
||||
trace("thirteen");
|
||||
case 14:
|
||||
trace("fourteen");
|
||||
break;
|
||||
case 89:
|
||||
trace("eightynine");
|
||||
break;
|
||||
}
|
||||
}
|
||||
public function testTernarOperator(){
|
||||
var a=5;
|
||||
var b=4;
|
||||
var c=4;
|
||||
var d=78;
|
||||
var e=(a==b)?((c==d)?1:7):3;
|
||||
trace("e="+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
5
trunk/testdata/classes/TestClass1.as
vendored
Normal file
5
trunk/testdata/classes/TestClass1.as
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
package classes{
|
||||
public dynamic class TestClass1{
|
||||
public var attrib:int=5;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user