1
0
Fork
You've already forked java_cup-bootstrap
0
Code and scripts to compile the java_cup parser generator without the use of java_cup
  • Java 64.4%
  • C 20.6%
  • HTML 10%
  • Yacc 3.8%
  • Roff 0.6%
  • Other 0.6%
2026年05月19日 15:51:13 -04:00
bootstrap Add a license and a readme 2026年05月19日 15:51:13 -04:00
java_cup-0.10j Import java_cup version 0.10j 2026年05月19日 10:19:13 -04:00
jay-0.8 Lightly modernize the jay sources 2026年05月19日 15:08:46 -04:00
build.sh Add build files 2026年05月19日 15:18:28 -04:00
README.md Add a license and a readme 2026年05月19日 15:51:13 -04:00

what in tarnation

This project aims to provide a method of bootstrapping the CUP parser generator without the use of code generated by CUP.

CUP (Constructor of Useful Parsers) is a Java-based LALR parser generator similar to yacc. All source releases of CUP have depended on a pre-generated parser class created by CUP from the parser.cup specification.

This project attempts to break this circular dependency by providing an alternate bootstrap parser written using jay. jay is a modification of Berkeley yacc that is able to output Java code.

Both CUP and jay are no longer maintained, and their source code has been included in this repository for convenience.

y tho

CUP is needed to build Java.

Using Guix's method for bootstrapping Java from C++, the transition from GNU classpath to OpenJDK happens with OpenJDK 6 or 7. Both of these versions of Java bundle JAXP 1.4, which includes an XPath parser written in CUP.

(classpath's XPath parser is written in jay)

This repository uses CUP 0.10j, since that's the version used by JAXP in OpenJDK 7.

license

The bootstrap parser is covered by an MIT license, included in the header of bootstrap/parser.y.

CUP is provided under a MIT-style license, included in java_cup-0.10j/LICENSE.

jay is provided under a BSD-style license (from the original yacc), included in the headers of the source files.