| bootstrap | Add a license and a readme | |
| java_cup-0.10j | Import java_cup version 0.10j | |
| jay-0.8 | Lightly modernize the jay sources | |
| build.sh | Add build files | |
| README.md | Add a license and a readme | |
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.