summaryrefslogtreecommitdiff
path: root/lang/joos
diff options
context:
space:
mode:
authorjschauma <jschauma@pkgsrc.org>2002-05-08 15:42:00 +0000
committerjschauma <jschauma@pkgsrc.org>2002-05-08 15:42:00 +0000
commite14a1e0c8bd9bb2e6ecf98b129d362ef0faf0839 (patch)
treed59576f03f8c1105d72170327cdc1c5b6e9ed86d /lang/joos
parentf45a8b48a03eba04e43c3e0aefc75a44c733380b (diff)
downloadpkgsrc-e14a1e0c8bd9bb2e6ecf98b129d362ef0faf0839.tar.gz
Initial import of "Joos":
Joos is an acronym for Java's Object-Oriented Subset. JOOS is a proper subset of Java which is used to teach students about compilers.
Diffstat (limited to 'lang/joos')
-rw-r--r--lang/joos/DESCR20
-rw-r--r--lang/joos/Makefile22
-rw-r--r--lang/joos/PLIST374
-rw-r--r--lang/joos/distinfo8
-rw-r--r--lang/joos/patches/patch-aa28
-rw-r--r--lang/joos/patches/patch-ab20
-rw-r--r--lang/joos/patches/patch-ac20
-rw-r--r--lang/joos/patches/patch-ad30
8 files changed, 522 insertions, 0 deletions
diff --git a/lang/joos/DESCR b/lang/joos/DESCR
new file mode 100644
index 00000000000..3696b416f05
--- /dev/null
+++ b/lang/joos/DESCR
@@ -0,0 +1,20 @@
+Joos is an acronym for Java's Object-Oriented Subset. JOOS is a
+proper subset of Java, defined as follows:
+ * its context-free syntax is restricted to the following grammar;
+ * subclassing must not change the signature of a method;
+ * declarations of locals must all be in the beginning of the statement
+ sequence in a block;
+ * protected fields cannot be accessed from without the class or its
+ subclasses; and
+ * every path through a non-void method must return a value.
+
+In addition, JOOS defines a concept of extern classes, which provide
+a convenient interface to the Java libraries without requiring the
+compiler to parse Java class files.
+
+It defines a class name and some method signatures, along with a file
+name that is guaranteed to provide the implementation. The JOOS compiler
+will implicitly trust this specification. If it is incorrect,
+then the compiled JOOS class file may fail at class loading time.
+
+JOOS is used for teaching students about compilers.
diff --git a/lang/joos/Makefile b/lang/joos/Makefile
new file mode 100644
index 00000000000..b26ecec9b2d
--- /dev/null
+++ b/lang/joos/Makefile
@@ -0,0 +1,22 @@
+# $NetBSD: Makefile,v 1.1 2002/05/08 15:42:00 jschauma Exp $
+#
+
+DISTNAME= joos-0.1
+CATEGORIES= lang
+MASTER_SITES= ftp://netbsd.stevens-tech.edu/pub/NetBSD/packages/distfiles/
+EXTRACT_SUFX= .tar.bz2
+
+MAINTAINER= jschauma@netbsd.org
+HOMEPAGE= http://www.brics.dk/~mis/dOvs/index.html
+COMMENT= Java Object Oriented Subset
+
+USE_JAVA= yes
+
+# This is ugly. The chown should happen after copying, or tar should have
+# a way to override permissions.
+do-install:
+ ${INSTALL_PROGRAM_DIR} ${PREFIX}/joos
+ ${CHOWN} -hR ${BINOWN}:${BINGRP} ${WRKSRC}
+ ${GTAR} -C ${WRKSRC} -cf- . | ${GTAR} -C ${PREFIX}/joos -xpf-
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/lang/joos/PLIST b/lang/joos/PLIST
new file mode 100644
index 00000000000..5818b85a63c
--- /dev/null
+++ b/lang/joos/PLIST
@@ -0,0 +1,374 @@
+@comment $NetBSD: PLIST,v 1.1 2002/05/08 15:42:01 jschauma Exp $
+joos/A+/Makefile
+joos/A+/code.c
+joos/A+/code.h
+joos/A+/defasn.c
+joos/A+/defasn.h
+joos/A+/emit.c
+joos/A+/emit.h
+joos/A+/error.c
+joos/A+/error.h
+joos/A+/joos.l
+joos/A+/joos.y
+joos/A+/main.c
+joos/A+/memory.c
+joos/A+/memory.h
+joos/A+/optimize.c
+joos/A+/optimize.h
+joos/A+/resource.c
+joos/A+/resource.h
+joos/A+/symbol.c
+joos/A+/symbol.h
+joos/A+/tree.c
+joos/A+/tree.h
+joos/A+/type.c
+joos/A+/type.h
+joos/A+/weed.c
+joos/A+/weed.h
+joos/Bin/D-Java
+joos/Bin/README
+joos/Bin/dejava
+joos/Bin/jappletviewer
+joos/Bin/jasmin
+joos/Bin/jjasmin
+joos/Bin/jjava
+joos/Bin/jjavac
+joos/Bin/jjavap
+joos/Bin/jjoosc
+joos/Bin/joos
+joos/Bin/joosc
+joos/D-Java/Makefile
+joos/D-Java/clconst.h
+joos/D-Java/clstruct.h
+joos/D-Java/d-java.c
+joos/D-Java/d-java.h
+joos/D-Java/err_str.c
+joos/D-Java/getbytes.c
+joos/D-Java/labels.c
+joos/D-Java/lltoa.c
+joos/D-Java/opcodes.c
+joos/D-Java/opdefs.h
+joos/D-Java/packages.c
+joos/D-Java/reclass.c
+joos/D-Java/shattrib.c
+joos/D-Java/shclass.c
+joos/D-Java/shconst.c
+joos/D-Java/shjasmin.c
+joos/Extern/README
+joos/Extern/appletlib.joos
+joos/Extern/awtlib.joos
+joos/Extern/javalib.joos
+joos/Extern/jooslib.joos
+joos/Extern/netlib.joos
+joos/Lib/README
+joos/Lib/joos/lib/JoosApplet.j
+joos/Lib/joos/lib/JoosConstants.class
+joos/Lib/joos/lib/JoosConstants.java
+joos/Lib/joos/lib/JoosContainer.class
+joos/Lib/joos/lib/JoosContainer.java
+joos/Lib/joos/lib/JoosDimension.class
+joos/Lib/joos/lib/JoosDimension.java
+joos/Lib/joos/lib/JoosEvent.class
+joos/Lib/joos/lib/JoosEvent.java
+joos/Lib/joos/lib/JoosException.class
+joos/Lib/joos/lib/JoosException.java
+joos/Lib/joos/lib/JoosFraction.class
+joos/Lib/joos/lib/JoosFraction.java
+joos/Lib/joos/lib/JoosGridBagConstraints.class
+joos/Lib/joos/lib/JoosGridBagConstraints.java
+joos/Lib/joos/lib/JoosIO.class
+joos/Lib/joos/lib/JoosIO.java
+joos/Lib/joos/lib/JoosMediaTracker.class
+joos/Lib/joos/lib/JoosMediaTracker.java
+joos/Lib/joos/lib/JoosObject.class
+joos/Lib/joos/lib/JoosObject.java
+joos/Lib/joos/lib/JoosRectangle.class
+joos/Lib/joos/lib/JoosRectangle.java
+joos/Lib/joos/lib/JoosRunnable.class
+joos/Lib/joos/lib/JoosRunnable.java
+joos/Lib/joos/lib/JoosString.class
+joos/Lib/joos/lib/JoosString.java
+joos/Lib/joos/lib/JoosSystem.class
+joos/Lib/joos/lib/JoosSystem.java
+joos/Lib/joos/lib/JoosThread.class
+joos/Lib/joos/lib/JoosThread.java
+joos/Lib/joos/lib/JoosURL.class
+joos/Lib/joos/lib/JoosURL.java
+joos/Lib/joos/lib/JoosURL.java.errmsg
+joos/Lib/joos/lib/WigApplet.class
+joos/Lib/joos/lib/WigApplet.java
+joos/Makefile
+joos/Progs/AppletGraphics/DemoFont.class
+joos/Progs/AppletGraphics/DemoFont.html
+joos/Progs/AppletGraphics/DemoFont.j
+joos/Progs/AppletGraphics/DemoFont.java
+joos/Progs/AppletGraphics/DemoFont2.class
+joos/Progs/AppletGraphics/DemoFont2.html
+joos/Progs/AppletGraphics/DemoFont2.j
+joos/Progs/AppletGraphics/DemoFont2.java
+joos/Progs/AppletGraphics/DrawArcs.class
+joos/Progs/AppletGraphics/DrawArcs.html
+joos/Progs/AppletGraphics/DrawArcs.j
+joos/Progs/AppletGraphics/DrawArcs.java
+joos/Progs/AppletGraphics/DrawPoly.class
+joos/Progs/AppletGraphics/DrawPoly.html
+joos/Progs/AppletGraphics/DrawPoly.j
+joos/Progs/AppletGraphics/DrawPoly.java
+joos/Progs/AppletGraphics/Makefile
+joos/Progs/AppletGraphics/Makefile.log
+joos/Progs/AppletGraphics/MyLabel2.class
+joos/Progs/AppletGraphics/MyLabel2.html
+joos/Progs/AppletGraphics/MyLabel2.j
+joos/Progs/AppletGraphics/MyLabel2.java
+joos/Progs/AppletGraphics/README
+joos/Progs/AppletGraphics/Rectangle2.class
+joos/Progs/AppletGraphics/Rectangle2.html
+joos/Progs/AppletGraphics/Rectangle2.j
+joos/Progs/AppletGraphics/Rectangle2.java
+joos/Progs/AppletGraphics/ShowColors.class
+joos/Progs/AppletGraphics/ShowColors.html
+joos/Progs/AppletGraphics/ShowColors.j
+joos/Progs/AppletGraphics/ShowColors.java
+joos/Progs/AwtDemos/AllComponents.class
+joos/Progs/AwtDemos/AllComponents.j
+joos/Progs/AwtDemos/AllComponents.java
+joos/Progs/AwtDemos/AllEvents.class
+joos/Progs/AwtDemos/AllEvents.j
+joos/Progs/AwtDemos/AllEvents.java
+joos/Progs/AwtDemos/BlankCanvas.class
+joos/Progs/AwtDemos/BlankCanvas.j
+joos/Progs/AwtDemos/BlankCanvas.java
+joos/Progs/AwtDemos/InfoDialog.class
+joos/Progs/AwtDemos/InfoDialog.j
+joos/Progs/AwtDemos/InfoDialog.java
+joos/Progs/AwtDemos/IntVector.class
+joos/Progs/AwtDemos/IntVector.j
+joos/Progs/AwtDemos/IntVector.java
+joos/Progs/AwtDemos/Line.class
+joos/Progs/AwtDemos/Line.j
+joos/Progs/AwtDemos/Line.java
+joos/Progs/AwtDemos/Main.java
+joos/Progs/AwtDemos/Makefile
+joos/Progs/AwtDemos/MultiLineLabel.class
+joos/Progs/AwtDemos/MultiLineLabel.j
+joos/Progs/AwtDemos/MultiLineLabel.java
+joos/Progs/AwtDemos/README
+joos/Progs/AwtDemos/ReallyQuitDialog.class
+joos/Progs/AwtDemos/ReallyQuitDialog.j
+joos/Progs/AwtDemos/ReallyQuitDialog.java
+joos/Progs/AwtDemos/ScrollableScribble.class
+joos/Progs/AwtDemos/ScrollableScribble.j
+joos/Progs/AwtDemos/ScrollableScribble.java
+joos/Progs/AwtDemos/StringVector.class
+joos/Progs/AwtDemos/StringVector.j
+joos/Progs/AwtDemos/StringVector.java
+joos/Progs/AwtDemos/YesNoDialog.class
+joos/Progs/AwtDemos/YesNoDialog.j
+joos/Progs/AwtDemos/YesNoDialog.java
+joos/Progs/ImageDemos/Animator.class
+joos/Progs/ImageDemos/Animator.html
+joos/Progs/ImageDemos/Animator.j
+joos/Progs/ImageDemos/Animator.java
+joos/Progs/ImageDemos/Animator2.class
+joos/Progs/ImageDemos/Animator2.html
+joos/Progs/ImageDemos/Animator2.j
+joos/Progs/ImageDemos/Animator2.java
+joos/Progs/ImageDemos/Animator2Run.class
+joos/Progs/ImageDemos/Animator2Run.j
+joos/Progs/ImageDemos/Animator2Run.java
+joos/Progs/ImageDemos/AnimatorRun.class
+joos/Progs/ImageDemos/AnimatorRun.j
+joos/Progs/ImageDemos/AnimatorRun.java
+joos/Progs/ImageDemos/Imagemap.class
+joos/Progs/ImageDemos/Imagemap.html
+joos/Progs/ImageDemos/Imagemap.j
+joos/Progs/ImageDemos/Imagemap.java
+joos/Progs/ImageDemos/ImagemapRectangle.class
+joos/Progs/ImageDemos/ImagemapRectangle.j
+joos/Progs/ImageDemos/ImagemapRectangle.java
+joos/Progs/ImageDemos/Makefile
+joos/Progs/ImageDemos/images/circle0
+joos/Progs/ImageDemos/images/circle1
+joos/Progs/ImageDemos/images/circle10
+joos/Progs/ImageDemos/images/circle11
+joos/Progs/ImageDemos/images/circle12
+joos/Progs/ImageDemos/images/circle13
+joos/Progs/ImageDemos/images/circle14
+joos/Progs/ImageDemos/images/circle15
+joos/Progs/ImageDemos/images/circle16
+joos/Progs/ImageDemos/images/circle17
+joos/Progs/ImageDemos/images/circle18
+joos/Progs/ImageDemos/images/circle19
+joos/Progs/ImageDemos/images/circle2
+joos/Progs/ImageDemos/images/circle3
+joos/Progs/ImageDemos/images/circle4
+joos/Progs/ImageDemos/images/circle5
+joos/Progs/ImageDemos/images/circle6
+joos/Progs/ImageDemos/images/circle7
+joos/Progs/ImageDemos/images/circle8
+joos/Progs/ImageDemos/images/circle9
+joos/Progs/ImageDemos/images/deitel0.gif
+joos/Progs/ImageDemos/images/deitel1.gif
+joos/Progs/ImageDemos/images/deitel10.gif
+joos/Progs/ImageDemos/images/deitel11.gif
+joos/Progs/ImageDemos/images/deitel12.gif
+joos/Progs/ImageDemos/images/deitel13.gif
+joos/Progs/ImageDemos/images/deitel14.gif
+joos/Progs/ImageDemos/images/deitel15.gif
+joos/Progs/ImageDemos/images/deitel16.gif
+joos/Progs/ImageDemos/images/deitel17.gif
+joos/Progs/ImageDemos/images/deitel18.gif
+joos/Progs/ImageDemos/images/deitel19.gif
+joos/Progs/ImageDemos/images/deitel2.gif
+joos/Progs/ImageDemos/images/deitel20.gif
+joos/Progs/ImageDemos/images/deitel21.gif
+joos/Progs/ImageDemos/images/deitel22.gif
+joos/Progs/ImageDemos/images/deitel23.gif
+joos/Progs/ImageDemos/images/deitel24.gif
+joos/Progs/ImageDemos/images/deitel25.gif
+joos/Progs/ImageDemos/images/deitel26.gif
+joos/Progs/ImageDemos/images/deitel27.gif
+joos/Progs/ImageDemos/images/deitel28.gif
+joos/Progs/ImageDemos/images/deitel29.gif
+joos/Progs/ImageDemos/images/deitel3.gif
+joos/Progs/ImageDemos/images/deitel4.gif
+joos/Progs/ImageDemos/images/deitel5.gif
+joos/Progs/ImageDemos/images/deitel6.gif
+joos/Progs/ImageDemos/images/deitel7.gif
+joos/Progs/ImageDemos/images/deitel8.gif
+joos/Progs/ImageDemos/images/deitel9.gif
+joos/Progs/ImageDemos/images/java.parts.gif
+joos/Progs/Network/Makefile
+joos/Progs/Network/ReverseURL.class
+joos/Progs/Network/ReverseURL.j
+joos/Progs/Network/ReverseURL.java
+joos/Progs/Network/TestURL.class
+joos/Progs/Network/TestURL.j
+joos/Progs/Network/TestURL.java
+joos/Progs/Simple/Benchmark.class
+joos/Progs/Simple/Benchmark.j
+joos/Progs/Simple/Benchmark.java
+joos/Progs/Simple/Cons.class
+joos/Progs/Simple/Cons.j
+joos/Progs/Simple/Cons.java
+joos/Progs/Simple/Control.class
+joos/Progs/Simple/Control.j
+joos/Progs/Simple/Control.java
+joos/Progs/Simple/ExtBenchmark.class
+joos/Progs/Simple/ExtBenchmark.j
+joos/Progs/Simple/ExtBenchmark.java
+joos/Progs/Simple/ExtCons.class
+joos/Progs/Simple/ExtCons.j
+joos/Progs/Simple/ExtCons.java
+joos/Progs/Simple/Hello.class
+joos/Progs/Simple/Hello.j
+joos/Progs/Simple/Hello.java
+joos/Progs/Simple/Hello.joos
+joos/Progs/Simple/Makefile
+joos/Progs/Simple/README
+joos/Progs/Simple/ShowRuntime.class
+joos/Progs/Simple/ShowRuntime.j
+joos/Progs/Simple/ShowRuntime.java
+joos/Progs/Simple/StrCat.class
+joos/Progs/Simple/StrCat.j
+joos/Progs/Simple/StrCat.java
+joos/Progs/Simple/SyncBox.class
+joos/Progs/Simple/SyncBox.j
+joos/Progs/Simple/SyncBox.java
+joos/Progs/Simple/TestComp.class
+joos/Progs/Simple/TestComp.j
+joos/Progs/Simple/TestComp.java
+joos/Progs/Simple/TestEqual.java
+joos/Progs/Simple/TestForInc.class
+joos/Progs/Simple/TestForInc.j
+joos/Progs/Simple/TestForInc.java
+joos/Progs/Simple/TestIO.class
+joos/Progs/Simple/TestIO.j
+joos/Progs/Simple/TestIO.java
+joos/Progs/Simple/TestIOlist.class
+joos/Progs/Simple/TestIOlist.j
+joos/Progs/Simple/TestIOlist.java
+joos/Progs/Simple/TestNull.class
+joos/Progs/Simple/TestNull.j
+joos/Progs/Simple/TestNull.java
+joos/Progs/Simple/TestShortCircuit.class
+joos/Progs/Simple/TestShortCircuit.j
+joos/Progs/Simple/TestShortCircuit.java
+joos/Progs/Simple/TestString.class
+joos/Progs/Simple/TestString.j
+joos/Progs/Simple/TestString.java
+joos/Progs/Simple/Tree.class
+joos/Progs/Simple/Tree.j
+joos/Progs/Simple/Tree.java
+joos/Progs/Simple/UseBenchmark.class
+joos/Progs/Simple/UseBenchmark.j
+joos/Progs/Simple/UseBenchmark.java
+joos/Progs/Simple/UseBox.class
+joos/Progs/Simple/UseBox.j
+joos/Progs/Simple/UseBox.java
+joos/Progs/Simple/UseCons.class
+joos/Progs/Simple/UseCons.j
+joos/Progs/Simple/UseCons.java
+joos/Progs/Simple/UseExtCons.class
+joos/Progs/Simple/UseExtCons.j
+joos/Progs/Simple/UseExtCons.java
+joos/Progs/Threads/ConsumeInteger.class
+joos/Progs/Threads/ConsumeInteger.j
+joos/Progs/Threads/ConsumeInteger.java
+joos/Progs/Threads/ConsumeIntegerSync.class
+joos/Progs/Threads/ConsumeIntegerSync.j
+joos/Progs/Threads/ConsumeIntegerSync.java
+joos/Progs/Threads/HoldInteger.class
+joos/Progs/Threads/HoldInteger.j
+joos/Progs/Threads/HoldInteger.java
+joos/Progs/Threads/HoldIntegerSync.class
+joos/Progs/Threads/HoldIntegerSync.j
+joos/Progs/Threads/HoldIntegerSync.java
+joos/Progs/Threads/Makefile
+joos/Progs/Threads/PrintTest.class
+joos/Progs/Threads/PrintTest.j
+joos/Progs/Threads/PrintTest.java
+joos/Progs/Threads/PrintThread.class
+joos/Progs/Threads/PrintThread.j
+joos/Progs/Threads/PrintThread.java
+joos/Progs/Threads/ProduceInteger.class
+joos/Progs/Threads/ProduceInteger.j
+joos/Progs/Threads/ProduceInteger.java
+joos/Progs/Threads/ProduceIntegerSync.class
+joos/Progs/Threads/ProduceIntegerSync.j
+joos/Progs/Threads/ProduceIntegerSync.java
+joos/Progs/Threads/SharedCell.class
+joos/Progs/Threads/SharedCell.j
+joos/Progs/Threads/SharedCell.java
+joos/Progs/Threads/SharedCellSync.class
+joos/Progs/Threads/SharedCellSync.j
+joos/Progs/Threads/SharedCellSync.java
+joos/Progs/WIGapplets/First.class
+joos/Progs/WIGapplets/First1.html
+joos/Progs/WIGapplets/First1.j
+joos/Progs/WIGapplets/First1.java
+joos/Progs/WIGapplets/Makefile
+joos/Progs/WIGapplets/README
+joos/Progs/WIGapplets/TicTacToe.class
+joos/Progs/WIGapplets/TicTacToe.j
+joos/Progs/WIGapplets/TicTacToe.java
+joos/Progs/WIGapplets/images/cross.gif
+joos/Progs/WIGapplets/images/not.gif
+@dirrm joos/Progs/WIGapplets/images
+@dirrm joos/Progs/WIGapplets
+@dirrm joos/Progs/Threads
+@dirrm joos/Progs/Simple
+@dirrm joos/Progs/Network
+@dirrm joos/Progs/ImageDemos/images/
+@dirrm joos/Progs/ImageDemos/
+@dirrm joos/Progs/AwtDemos
+@dirrm joos/Progs/AppletGraphics
+@dirrm joos/Progs/
+@dirrm joos/Lib/joos/lib/
+@dirrm joos/Lib/joos/
+@dirrm joos/Lib/
+@dirrm joos/Extern/
+@dirrm joos/D-Java
+@dirrm joos/Bin
+@dirrm joos/A+
+@dirrm joos
diff --git a/lang/joos/distinfo b/lang/joos/distinfo
new file mode 100644
index 00000000000..0cef495a3f2
--- /dev/null
+++ b/lang/joos/distinfo
@@ -0,0 +1,8 @@
+$NetBSD: distinfo,v 1.1 2002/05/08 15:42:01 jschauma Exp $
+
+SHA1 (joos-0.1.tar.bz2) = 003f2b788a559d4245b44eeb43e58f200854dc41
+Size (joos-0.1.tar.bz2) = 265075 bytes
+SHA1 (patch-aa) = 20598bcc16b3c31246f618720909281e679693de
+SHA1 (patch-ab) = 80959321809481f229bc61c2f8230aa9e4e980b0
+SHA1 (patch-ac) = 298f43d4e50bab0aa4cc8b01b514b69d0125d98b
+SHA1 (patch-ad) = 4bc69ab337ee2591fd5bca4ee5113d99ecebf499
diff --git a/lang/joos/patches/patch-aa b/lang/joos/patches/patch-aa
new file mode 100644
index 00000000000..6ef050bc500
--- /dev/null
+++ b/lang/joos/patches/patch-aa
@@ -0,0 +1,28 @@
+$NetBSD: patch-aa,v 1.1 2002/05/08 15:42:02 jschauma Exp $
+
+--- A+/Makefile.orig Thu Apr 4 15:19:53 2002
++++ A+/Makefile Wed May 8 11:25:13 2002
+@@ -1,7 +1,6 @@
+-CC = gcc
+-BISON = bison
+ FLEX = flex
+-CFLAGS = -Wall -ansi -pedantic
++YACC = yacc
++
+ LFLAGS = -lfl
+
+ OFILES = main.o tree.o error.o memory.o weed.o symbol.o type.o defasn.o \
+@@ -16,11 +15,11 @@
+ $(CC) lex.yy.o y.tab.o $(OFILES) $(LFLAGS) -o joos
+
+ y.tab.c y.tab.h: joos.y
+- $(BISON) -y -d joos.y
++ $(YACC) -d joos.y
+
+ lex.yy.c: joos.l y.tab.h
+ $(FLEX) joos.l
+
+
+ clean:
+- @rm $(OFILES) joos lex.yy.o y.tab.o
++ @rm $(OFILES) joos lex.yy.* y.tab.*
diff --git a/lang/joos/patches/patch-ab b/lang/joos/patches/patch-ab
new file mode 100644
index 00000000000..c87b1c7e0c2
--- /dev/null
+++ b/lang/joos/patches/patch-ab
@@ -0,0 +1,20 @@
+$NetBSD: patch-ab,v 1.1 2002/05/08 15:42:02 jschauma Exp $
+
+--- A+/main.c.orig Wed May 8 10:32:57 2002
++++ A+/main.c Wed May 8 10:33:14 2002
+@@ -20,7 +20,7 @@
+
+ int optionO;
+
+-void main(int argc, char **argv)
++int main(int argc, char **argv)
+ { int i;
+ theprogram = NULL;
+ optionO = 0;
+@@ -50,5 +50,5 @@
+ codePROGRAM(theprogram);
+ if (optionO) optiPROGRAM(theprogram);
+ emitPROGRAM(theprogram);
+- exit(0);
++ return(0);
+ }
diff --git a/lang/joos/patches/patch-ac b/lang/joos/patches/patch-ac
new file mode 100644
index 00000000000..6319467c211
--- /dev/null
+++ b/lang/joos/patches/patch-ac
@@ -0,0 +1,20 @@
+$NetBSD: patch-ac,v 1.1 2002/05/08 15:42:02 jschauma Exp $
+
+--- D-Java/Makefile.orig Wed May 8 10:33:44 2002
++++ D-Java/Makefile Wed May 8 10:33:58 2002
+@@ -1,6 +1,3 @@
+-CC = gcc
+-CFLAGS = -Wall -O2
+-
+ objects = d-java.o err_str.o getbytes.o labels.o lltoa.o \
+ opcodes.o packages.o reclass.o shattrib.o shclass.o \
+ shconst.o shjasmin.o
+@@ -8,7 +5,7 @@
+ target = D-Java
+
+ $(target) : $(objects)
+- gcc -o $(target) $(objects)
++ $(CC) -o $(target) $(objects)
+
+ d-java.o : d-java.h
+ err_str.o :
diff --git a/lang/joos/patches/patch-ad b/lang/joos/patches/patch-ad
new file mode 100644
index 00000000000..8d31181184b
--- /dev/null
+++ b/lang/joos/patches/patch-ad
@@ -0,0 +1,30 @@
+$NetBSD: patch-ad,v 1.1 2002/05/08 15:42:03 jschauma Exp $
+
+--- A+/joos.y.orig Thu Aug 5 12:42:37 1999
++++ A+/joos.y Wed May 8 11:24:41 2002
+@@ -347,7 +347,7 @@
+ makeSTATEMENTexp($7)
+ )
+ )
+- )
++ );
+ }
+ ;
+
+@@ -361,7 +361,7 @@
+ makeSTATEMENTexp($7)
+ )
+ )
+- )
++ );
+ }
+ ;
+
+@@ -469,6 +469,7 @@
+ {$$ = makeEXPnot($2);}
+ | castexpression
+ {$$ = $1;}
++;
+
+ castexpression : '(' expression ')' unaryexpressionnotminus
+ {if ($2->kind!=idK) yyerror("identifier expected");