Permalink
Browse files

changed the structure to a Enclojure/NetBeans project

  • Loading branch information...
0 parents commit 65fa6a33bc5484eb32eb8ef778da2aaf39b6d971 joshua-choi committed Jun 11, 2009
24 README
@@ -0,0 +1,24 @@
+FnParse is a library for creating functional parsers in the Clojure programming
+language. It presents an easy, functional way to create parsers from EBNF rules and
+was inspired by the paper Using Functional Parsing to Achieve Quality in Software
+Maintenance (http://citeseer.ist.psu.edu/148293.html).
+
+FnParse's distribution has src and test folders. To use FnParse, download this
+distribution and include its src folder in your program's classpath—for instance,
+ java -cp $CLOJURE_PATH:path-to-FnParse-folder/src/ ...
+
+FnParse's namespace is name.choi.joshua.fnparse.
+
+FnParse's unit tests are stored in the tests folder and use the test-is library
+from clojure-contrib, the Clojure standard library.
+
+For documentation, go to: http://github.com/joshua-choi/fnparse/wikis
+
+ * FnParse
+ * Copyright (c) 2009 Joshua Choi. All rights reserved.
+ * The use and distribution terms for this software are covered by the
+ * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
+ * which can be found in the file epl-v10.html at the root of this distribution.
+ * By using this software in any fashion, you are agreeing to be bound by
+ * the terms of this license.
+ * You must not remove this notice, or any other, from this software.
@@ -0,0 +1 @@
+ <arg value = "name.choi.joshua.fnparse"/>
@@ -0,0 +1,20 @@
+<?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.-->
+<!DOCTYPE project [
+ <!ENTITY argfile SYSTEM "./argfile.xml">
+]>
+<project name="FnParse" default="default" basedir=".">
+
+
+ <description>Builds, tests, and runs the project FnParse.</description>
+ <import file="clojure-build.xml"/>
+
+</project>
+
@@ -0,0 +1,168 @@
+<?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.-->
+<!DOCTYPE project [
+ <!ENTITY argfile SYSTEM "./argfile.xml">
+]>
+
+<project name="clojure-build" default="default" basedir=".">
+
+
+ <description>Builds, tests, and runs the project org.enclojure.ide.</description>
+ <import file="nbproject/build-impl.xml"/>
+
+ <!-- Begin Clojure ANT Tasks -->
+ <property name="argfilename" location = "argfile.xml"/>
+
+ <target name="clojure-init">
+ <tstamp/>
+ <mkdir dir="${build.classes.dir}"/>
+ <available file="${src.dir}" type="dir"
+ property="java.files.present"/>
+ </target>
+
+ <target name="clojure-compile_java" depends="clojure-init" if="java.files.present"
+ description="Compile Java sources.">
+ <javac srcdir="${src.dir}" destdir="${build.classes.dir}" includeJavaRuntime="yes"
+ debug="true" target="1.5"/>
+ </target>
+
+ <target name="clojure-prepare_clojure_compile" depends="clojure-compile_java"
+ description="prepares for clojure compiling">
+
+ <fileset dir="${src.dir}" id="project-files.clj">
+ <include name="**/*.clj"/>
+ </fileset>
+ <pathconvert pathsep="&#34; /> &#13;&#10;&lt;arg value = &#34;" property="cljfiles" refid="project-files.clj"/>
+ <delete file="${argfilename}"/>
+ <echo file="${argfilename}"> &lt;arg value = "${cljfiles}"/></echo>
+ <replace file="${argfilename}"
+ token="${basedir}${file.separator}"
+ value=""
+ summary="yes"/>
+ <replace file="${argfilename}"
+ token="${src.dir}${file.separator}"
+ value=""
+ summary="yes"/>
+ <replace file="${argfilename}"
+ token="_"
+ value="-"
+ summary="yes"/>
+ <replace file="${argfilename}"
+ token=".clj"
+ value=""
+ summary="yes"/>
+ <replace file="${argfilename}"
+ token="${file.separator}"
+ value="."
+ summary="yes"/>
+ <replace file="${argfilename}"
+ token=".>"
+ value="/>"
+ summary="yes"/>
+ <loadfile property="newargs" srcFile="${argfilename}"/>
+<!--
+ <echo>cljfiles = ${cljfiles}</echo>
+ <echo>src = ${src.dir}</echo>
+ <echo>NewArgs = ${newargs}</echo>
+ <echo>baseDir = ${basedir}</echo>
+ <echo>ant.file = ${ant.file}</echo>
+ <echo>src.dir = ${src.dir}</echo>
+ <echo>base.src = ${base.src}</echo>
+ <echo>build.classes.dir = ${build.classes.dir}</echo>
+-->
+ </target>
+
+ <target name="clojure-compile_clojure" depends="clojure-prepare_clojure_compile"
+ description="Compile clojure sources.">
+ <java failonerror="true"
+ classname="clojure.lang.Compile"
+ classpath="build${file.separator}classes:${src.dir}:${javac.classpath}">
+ <sysproperty key="clojure.compile.path" value="${build.classes.dir}"/>
+ &argfile;
+ </java>
+ </target>
+
+ <target name="clojure-jar" depends="clojure-compile_clojure"
+ description="Create jar file.">
+ <jar jarfile="${org_enclojure_repl_jar}" basedir="${build.classes.dir}">
+ <fileset dir="${src.dir}" includes="**/*.clj"/>
+ <manifest>
+ <attribute name="Class-Path" value="."/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="-post-compile" depends="clojure-compile_clojure" />
+
+ <!-- End Clojure ANT Tasks -->
+
+ <!--
+
+ 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="org.enclojure.ide-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>
+
Oops, something went wrong.

0 comments on commit 65fa6a3

Please sign in to comment.