AS3: Editing exceptions

This commit is contained in:
Jindra Petk
2010-09-19 13:58:21 +02:00
parent 86f602ff80
commit c2194031db
34 changed files with 4322 additions and 1202 deletions

Binary file not shown.

View File

@@ -0,0 +1,3 @@
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

View 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>

View 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 &quot;${ant.java.version}"/>
<condition property="have-jdk-older-than-1.4">
<or>
<contains string="${version-output}" substring="java version &quot;1.0"/>
<contains string="${version-output}" substring="java version &quot;1.1"/>
<contains string="${version-output}" substring="java version &quot;1.2"/>
<contains string="${version-output}" substring="java version &quot;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>

View 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

View 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}

View 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>

View File

@@ -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 */

View File

@@ -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;

3
trunk/manifest.mf Normal file
View 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
View 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>

View 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 &quot;${ant.java.version}"/>
<condition property="have-jdk-older-than-1.4">
<or>
<contains string="${version-output}" substring="java version &quot;1.0"/>
<contains string="${version-output}" substring="java version &quot;1.1"/>
<contains string="${version-output}" substring="java version &quot;1.2"/>
<contains string="${version-output}" substring="java version &quot;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>

View File

@@ -0,0 +1,2 @@
$label=Basic run
main.class=com.jpexs.asdec.Main

View File

@@ -0,0 +1 @@
main.class=com.jpexs.asdec.Main

View File

@@ -0,0 +1 @@
main.class=com.jpexs.asdec.Main

View File

@@ -0,0 +1 @@
main.class=com.jpexs.asdec.Main

View 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

View 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

View 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>

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;

View File

@@ -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));

View File

@@ -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

Binary file not shown.

318
trunk/testdata/as2.html vendored Normal file
View 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

Binary file not shown.

BIN
trunk/testdata/as3.fla vendored Normal file

Binary file not shown.

318
trunk/testdata/as3.html vendored Normal file
View 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

Binary file not shown.

313
trunk/testdata/classes/Test.as vendored Normal file
View 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
View File

@@ -0,0 +1,5 @@
package classes{
public dynamic class TestClass1{
public var attrib:int=5;
}
}