Related Projects
- JFlex
- A very fast scanner generator,
which also does a good job combinated
with CUP.
- Classgen
- A Java tool to generate class
frameworks and visitor patterns for
example for a syntax tree
- CompilerConstructionKit
- Easy to install compiler
construction packet with
TU-Münchens preferred tools like
JFlex, CUP and Classgen, as well as ANT
Related Persons
- Andrea Flexeder
- Syntactic changes in CUP 0.11
- Michael Petter
- Syntactic changes, new JFlex
frontend and Anttask in CUP 0.11;
maintaining latest (0.11) sources
- Scott
E. Hudson
- ... CUP 0.9 team @ Carnegie Mellon;
'original' author of CUP
- C. Scott Ananian
- ... CUP 0.10 team @ Princeton
- Frank Flannery
- ... CUP 0.10 team @ Princeton
- Dan Wang
- ... CUP 0.10 team @ Princeton
- Andrew W. Appel
- ... CUP 0.10 team @ Princeton
FAQ
- "Method is exceeding the 65536 bytes limit"
- In almost all
computer languages You would choose not to hardcode subcommands or
functions as language keywords, but as identifiers, thus eliminating
ever growing grammars, as Your language evolves? This is also a way to
surpass the Java Bytecode Formats limitation of not allowing methods
bigger than 65k
- Which Java version matches
the code, produced by CUP?
- Since You don't use
generics as data types for non terminals or You don't use new syntax
in Your user code, You can compile Your parser with JDK 1.2+
- The CUP-Anttask has a bug
- it doesn't find my directory xy
- This is no CUP bug! If You use Your CUP with
Ant and keep Your directories as properties, then verify, that You are
using the location attribute instead of the value attribute
- My CUP/JFlex task drops
strange erros when using CUP v11a
- JFlex is build upon CUP
runtime, so having JFlex and
CUP both residing in the same
classpath will confuse Java and
make CUP v11a use the v10 runtime,
and thus run into errors. Try
to include the jars separately
News
-
Prepare for CUP2!
- 11.08.2009: Due to
problems, rooted deep in the
ancient CUP engine, we decided
to completely rewrite the
whole engine and stop supporting
the old CUP sources. You can
find the sources on our
development page!
- New
development release 20060608
- 08.06.2006: CUPs
embedded actions handling is
now correct.
- New Homepage
- 20.10.2003: The new
CUP-TUM Homepage is online
since today
- CompilerConstructionKit
- 15.10.2003: CUP-TUM
is now included in the new CompilerConstructionKit 1.0beta!
- CUP-TUM
- 10.09.2003: Initial
release of a slightly adapted
CUP on this page.
In general
- What's
been introduced since CUP v11a
development started?
- Parsing theory hasn't
changed much since 1999, so the
major changes have been made in
the user interface and
frontend. With CUP v0.11a, You can:
- use CUP in an Ant-Target
- start CUP by a simple command like java -jar java-cup-11a.jar myGrammar.cup
- use generic parametrized classes (since Java 1.5) as datatypes for non
terminals and terminals
- have Your own symbol classes
- How do
You use CUP-TUM?
- You can obtain the
documentation for CUP here. If You speak german, You could also have a look at the Merkblatt, which describes the use of ant and the compiler tools.
Licence
- Copyright notice
-
Downloads

- CUP 11a beta 20060608
- executable standalone Jar-package

- CUP 11a beta 20060608 runtime
- CUP runtime-library to use in conjunction with CUP generated parsers

- CUP version control system
- SVN access to the development version

- Changelog.txt
- Changelog for current version
Examples / Documentation

- Example: CUP grammar for
the Java programming language
1.0 to 1.5. Please pay
attention: these grammars only
work with cup versions prior to
0.11 due to a change in the
keywords ("super")
- latest stable CUP release (July 1999)

- Example: CUP/JFLex interoperability
- latest development CUP release (June 2006)

- Example: CUP/JFLex sample project
- latest development CUP release (June 2006)

- manual.html
- Official documentation

- Merkblatt
- Documentation for the TUM Praktikum Übersetzerbau in PDF-Format
Archived versions

- CUP 10k sourcecode release
- latest stable CUP release (July 1999)

- CUP 10j sourcecode release
- old stable CUP release (July 1999)

- CUP 10i sourcecode release
- old CUP release (Feb 1999)

- CUP 10h sourcecode release
- old CUP release (Feb 1999)

- CUP 10g sourcecode release
- old CUP release (Mar 1998)

- CUP 10f sourcecode release
- old CUP release (Dec 1997)

- CUP 10e sourcecode release
- old CUP release (Sep 1997)

- CUP 10d sourcecode release
- old CUP release (Sep 1997)

- CUP 10c sourcecode release
- old CUP release (Jul 1997)

- CUP 10b sourcecode release
- old CUP release (Nov 1996)

- CUP 10a sourcecode release
- old CUP release (Aug 1996)

- CUP 9e sourcecode release
- ancient CUP release (March 1996)