ports/62043: New port: java/jflex Fast lexical analyser generator for Java

Conor McDermottroe ports at mcdermottroe.com
Wed Jan 28 21:11:21 UTC 2004


>Number:         62043
>Category:       ports
>Synopsis:       New port: java/jflex Fast lexical analyser generator for Java
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jan 28 13:10:10 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Conor McDermottroe
>Release:        FreeBSD 5.2-RELEASE i386
>Organization:
>Environment:
System: FreeBSD mcdermc 5.2-RELEASE FreeBSD 5.2-RELEASE #3: Sat Jan 17 01:18:58 GMT 2004 root@:/usr/obj/usr/src/sys/MCDERMC i386


	
>Description:
>From its documentation:

JFlex is a lexical analyzer generator for Java written in Java.
It is also a rewrite of the very useful tool JLex which was developed
by Elliot Berk at Princeton University. As Vern Paxon states for his C/C++
tool flex: They do not share any code though.

>How-To-Repeat:
	
>Fix:
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	/usr/ports/java/jflex
#	/usr/ports/java/jflex/distinfo
#	/usr/ports/java/jflex/Makefile
#	/usr/ports/java/jflex/pkg-descr
#	/usr/ports/java/jflex/pkg-plist
#	/usr/ports/java/jflex/files
#	/usr/ports/java/jflex/files/patch-ab
#	/usr/ports/java/jflex/files/patch-aa
#
echo c - /usr/ports/java/jflex
mkdir -p /usr/ports/java/jflex > /dev/null 2>&1
echo x - /usr/ports/java/jflex/distinfo
sed 's/^X//' >/usr/ports/java/jflex/distinfo << 'END-of-/usr/ports/java/jflex/distinfo'
XMD5 (jflex-1.3.5.tar.gz) = c77a9656aa20979f2268d7443995700f
END-of-/usr/ports/java/jflex/distinfo
echo x - /usr/ports/java/jflex/Makefile
sed 's/^X//' >/usr/ports/java/jflex/Makefile << 'END-of-/usr/ports/java/jflex/Makefile'
X# Ports collection Makefile for:	JFlex
X# Date created:						27 January 2004
X# Whom:								Conor McDermottroe <ports at mcdermottroe.com>
X#
X# $FreeBSD$
X#
X
XPORTNAME=			jflex
XPORTVERSION=		1.3.5
XCATEGORIES=			java
XMASTER_SITES=		http://www.jflex.de/
X
XMAINTAINER=			ports at mcdermottroe.com
XCOMMENT=			The Fast Lexical Analyser Generator for Java[tm]
X
XBUILD_DEPENDS=		${JAVAJARDIR}/java_cup.jar:${PORTSDIR}/java/java-cup
X
XUSE_JAVA=			1.1+
XNEED_JAVAC=			yes
XWRKSRC=				${WRKDIR}/JFlex
XBUILD_WRKSRC=		${WRKSRC}/src
X
XPLIST_SUB=			JAVAJARDIR=${JAVAJARDIR:S|^${PREFIX}/||}
X
Xpost-patch:
X	@cd ${WRKSRC} && \
X	 ${SED} -i~ -e 's|%%JAVAJARDIR%%|${JAVAJARDIR}|' bin/jflex src/Makefile && \
X	 ${SED} -i~ -e 's|%%JAVA_CLASSES%%|${JAVA_CLASSES}|' src/Makefile
X
Xdo-install:
X	@${INSTALL_SCRIPT} ${WRKSRC}/bin/jflex ${PREFIX}/bin/jflex
X	@${INSTALL_DATA} ${WRKSRC}/lib/JFlex.jar ${JAVAJARDIR}/JFlex.jar
X
Xpost-install:
X.if !defined(NOPORTDOCS)
X	${MKDIR} ${DOCSDIR}
X	${INSTALL_MAN} ${WRKSRC}/doc/* ${DOCSDIR}
X.endif
X	${MKDIR} ${EXAMPLESDIR}
X.for EXAMPLE in binary byaccj cup interpreter java simple standalone
X	${MKDIR} ${EXAMPLESDIR}/${EXAMPLE}
X	${INSTALL_DATA} ${WRKSRC}/examples/${EXAMPLE}/* ${EXAMPLESDIR}/${EXAMPLE}
X.endfor
X
X.include <bsd.port.mk>
END-of-/usr/ports/java/jflex/Makefile
echo x - /usr/ports/java/jflex/pkg-descr
sed 's/^X//' >/usr/ports/java/jflex/pkg-descr << 'END-of-/usr/ports/java/jflex/pkg-descr'
XJFlex is a lexical analyzer generator for Java written in Java.
XIt is also a rewrite of the very useful tool JLex which was developed
Xby Elliot Berk at Princeton University. As Vern Paxon states for his C/C++
Xtool flex: They do not share any code though.
X
XWWW: http://www.jflex.de/
END-of-/usr/ports/java/jflex/pkg-descr
echo x - /usr/ports/java/jflex/pkg-plist
sed 's/^X//' >/usr/ports/java/jflex/pkg-plist << 'END-of-/usr/ports/java/jflex/pkg-plist'
Xbin/jflex
X%%JAVAJARDIR%%/JFlex.jar
X%%PORTDOCS%%%%DOCSDIR%%/COPYRIGHT
X%%PORTDOCS%%%%DOCSDIR%%/faq.html
X%%PORTDOCS%%%%DOCSDIR%%/foot_motif.gif
X%%PORTDOCS%%%%DOCSDIR%%/jflex_anttask.html
X%%PORTDOCS%%%%DOCSDIR%%/logo.gif
X%%PORTDOCS%%%%DOCSDIR%%/manual.css
X%%PORTDOCS%%%%DOCSDIR%%/manual.html
X%%PORTDOCS%%%%DOCSDIR%%/manual.pdf
X%%PORTDOCS%%%%DOCSDIR%%/manual.ps.gz
X at dirrm %%DOCSDIR%%
X%%EXAMPLESDIR%%/binary/Makefile
X%%EXAMPLESDIR%%/binary/README
X%%EXAMPLESDIR%%/binary/StraightStreamReader.java
X%%EXAMPLESDIR%%/binary/binary.flex
X at dirrm %%EXAMPLESDIR%%/binary
X%%EXAMPLESDIR%%/byaccj/Makefile
X%%EXAMPLESDIR%%/byaccj/README
X%%EXAMPLESDIR%%/byaccj/calc.flex
X%%EXAMPLESDIR%%/byaccj/calc.y
X at dirrm %%EXAMPLESDIR%%/byaccj
X%%EXAMPLESDIR%%/cup/Main.java
X%%EXAMPLESDIR%%/cup/Makefile
X%%EXAMPLESDIR%%/cup/README
X%%EXAMPLESDIR%%/cup/lcalc.flex
X%%EXAMPLESDIR%%/cup/output.good
X%%EXAMPLESDIR%%/cup/test.txt
X%%EXAMPLESDIR%%/cup/ycalc.cup
X at dirrm %%EXAMPLESDIR%%/cup
X%%EXAMPLESDIR%%/interpreter/AST.java
X%%EXAMPLESDIR%%/interpreter/Main.java
X%%EXAMPLESDIR%%/interpreter/Makefile
X%%EXAMPLESDIR%%/interpreter/README
X%%EXAMPLESDIR%%/interpreter/STEfun.java
X%%EXAMPLESDIR%%/interpreter/STEvar.java
X%%EXAMPLESDIR%%/interpreter/SymTab.java
X%%EXAMPLESDIR%%/interpreter/SymtabEntry.java
X%%EXAMPLESDIR%%/interpreter/Tboolexp.java
X%%EXAMPLESDIR%%/interpreter/Tdekl.java
X%%EXAMPLESDIR%%/interpreter/Tdekllist.java
X%%EXAMPLESDIR%%/interpreter/Texp.java
X%%EXAMPLESDIR%%/interpreter/Texpinfix.java
X%%EXAMPLESDIR%%/interpreter/Texplist.java
X%%EXAMPLESDIR%%/interpreter/Tfun.java
X%%EXAMPLESDIR%%/interpreter/Tident.java
X%%EXAMPLESDIR%%/interpreter/Tifthenelse.java
X%%EXAMPLESDIR%%/interpreter/Tnumber.java
X%%EXAMPLESDIR%%/interpreter/Tparlist.java
X%%EXAMPLESDIR%%/interpreter/Tprogram.java
X%%EXAMPLESDIR%%/interpreter/Tuminus.java
X%%EXAMPLESDIR%%/interpreter/example.as
X%%EXAMPLESDIR%%/interpreter/parser.cup
X%%EXAMPLESDIR%%/interpreter/scanner.flex
X at dirrm %%EXAMPLESDIR%%/interpreter
X%%EXAMPLESDIR%%/java/JavaParser.java
X%%EXAMPLESDIR%%/java/JavaSymbol.java
X%%EXAMPLESDIR%%/java/Makefile
X%%EXAMPLESDIR%%/java/README
X%%EXAMPLESDIR%%/java/java.flex
X%%EXAMPLESDIR%%/java/java12.cup
X%%EXAMPLESDIR%%/java/unicode.flex
X at dirrm %%EXAMPLESDIR%%/java
X%%EXAMPLESDIR%%/simple/README
X%%EXAMPLESDIR%%/simple/Utility.java
X%%EXAMPLESDIR%%/simple/Yytoken.java
X%%EXAMPLESDIR%%/simple/simple.flex
X at dirrm %%EXAMPLESDIR%%/simple
X%%EXAMPLESDIR%%/standalone/Makefile
X%%EXAMPLESDIR%%/standalone/README
X%%EXAMPLESDIR%%/standalone/sample.inp
X%%EXAMPLESDIR%%/standalone/standalone.flex
X at dirrm %%EXAMPLESDIR%%/standalone
X at dirrm %%EXAMPLESDIR%%
END-of-/usr/ports/java/jflex/pkg-plist
echo c - /usr/ports/java/jflex/files
mkdir -p /usr/ports/java/jflex/files > /dev/null 2>&1
echo x - /usr/ports/java/jflex/files/patch-ab
sed 's/^X//' >/usr/ports/java/jflex/files/patch-ab << 'END-of-/usr/ports/java/jflex/files/patch-ab'
X--- src/Makefile.orig	Tue Jan 27 22:35:41 2004
X+++ src/Makefile	Tue Jan 27 22:27:05 2004
X@@ -1,16 +1,16 @@
X # you need JFlex 1.2.2 and CUP 0.10j or later for this Makefile to work
X 
X JFLEX     = jflex -skel skeleton.nested
X-CUP       = java java_cup.Main 
X+CUP       = java -classpath %%JAVAJARDIR%%/java_cup.jar java_cup.Main 
X 
X-JAVAC     = javac -target 1.1 -bootclasspath /usr/lib/jdk1.1/lib/classes.zip
X+JAVAC     = env LANG= javac -target 1.1
X #JAVAC     = jikes   
X JAR       = jar
X 
X DEST      = ../lib
X 
X # jdk 1.2 
X-CLPATH    = -classpath /usr/lib/java/jre/lib/rt.jar:.
X+CLPATH    = -classpath %%JAVA_CLASSES%%:.
X 
X # jdk 1.1
X #CLPATH    = -classpath /usr/lib/java/lib/classes.zip:.
END-of-/usr/ports/java/jflex/files/patch-ab
echo x - /usr/ports/java/jflex/files/patch-aa
sed 's/^X//' >/usr/ports/java/jflex/files/patch-aa << 'END-of-/usr/ports/java/jflex/files/patch-aa'
X--- bin/jflex.orig	Tue Jan 27 22:31:29 2004
X+++ bin/jflex	Tue Jan 27 22:26:00 2004
X@@ -1,51 +1,18 @@
X-#! /bin/bash 
X+#!/bin/sh 
X #
X-#     JFlex start script $Revision: 1.16 $
X-#
X-# if Java is not in your binary path, you need to supply its
X-# location in this script. The script automatically finds 
X-# JFLEX_HOME when called directly, via binary path, or symbolic
X-# link. 
X-#
X-# Site wide installation: simply make a symlink from e.g.
X-# /usr/bin/jflex to this script at its original position
X-#
X-#===================================================================
X-#
X-# configurables:
X-
X-# path to the java interpreter
X-JAVA=java
X-
X-# end configurables
X-#
X-#===================================================================
X-#
X-
X-# calculate true location
X-
X-PRG=`type $0`
X-PRG=${PRG##* }
X-
X-# If PRG is a symlink, trace it to the real home directory
X-
X-while [ -L "$PRG" ]
X-do
X-    newprg=$(ls -l ${PRG})
X-    newprg=${newprg##*-> }
X-    [ ${newprg} = ${newprg#/} ] && newprg=${PRG%/*}/${newprg}
X-    PRG="$newprg"
X-done
X-
X-PRG=${PRG%/*}
X-JFLEX_HOME=${PRG}/.. 
X-
X-# --------------------------------------------------------------------
X-
X-export CLASSPATH
X-CLASSPATH=$JFLEX_HOME/lib/JFlex.jar
X-
X-$JAVA JFlex.Main $@
X+# Replacement for the script that came with JFlex
X+# because bash is not necessarily on a FreeBSD
X+# machine. Also, we know where the jar is.
X+# 
X+# Conor McDermottroe <ports at mcdermottroe.com>
X+
X+# Allow the user to override where JFlex.jar lives
X+if [ -z "$JAVAJARDIR" ]; then
X+	JAVAJARDIR=%%JAVAJARDIR%%
X+fi
X+
X+# Allow the user to specify which java interpreter to use
X+if [ -z "$JAVA" ]; then
X+	JAVA="`which java`"
X+fi
X 
X-#for more memory:
X-#$JAVA -Xmx128m JFlex.Main $@
X+$JAVA -jar $JAVAJARDIR/JFlex.jar $@
END-of-/usr/ports/java/jflex/files/patch-aa
exit
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list