This paper describes oops, an object-oriented parser generator implemented in Java [1]. Oops takes a grammar written in EBNF, checks that it is indeed LL(1), i.e., suitable for recursive descent parsing, and produces a parser as a set of serialized objects. A scanner must be provided and classes satisfying certain interfaces can be implemented which the parser uses to build parse trees. The paper discusses the ideas behind oops — which are not specific to an implementation in Java — and shows the advantages of an object-oriented approach to grammar verification and parsing.

Publication Date



Copyright ACM, 2000. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ACM SIGPLAN Notices, Volume 35, Issue 12 (December 2000). http://doi.acm.org/10.1145/369928.369941 ISSN:0362-1340 Note: imported from RIT’s Digital Media Library running on DSpace to RIT Scholar Works in February 2014.

Document Type


Department, Program, or Center

Center for Advancing the Study of CyberInfrastructure


RIT – Main Campus