This paper introduces an alternative to context-free grammars called regular right part (RRP) grammars, which resemble PASCAL syntax diagrams. Formally, RRP grammars have production right parts, which are nondeterministic finite state machines (FSMs), and, as a special case, regular expression, since these can be converted to FSMs. RRP grammars describe the syntax of programming languages more concisely and more understandably than is possible with CF grammars. Also introduced is a class of parsers, RRP LR(m, k) parsers, which includes the CF LR(k) parsers and provides the same advantages. Informally, an RRP LR(m, k) parser can determine the right end of each handle by considering at most k symbols to the right of the handle and the left end, after the right end has been found, by considering at most m symbols to the left of the handle. A mechanism for determining the left end is required because there is no bound on the length of the handle.

Additional Metadata
Keywords compilers, finite state machines (automata), formal definition, language generation, LR(k) grammars, parser construction, parsing, programming languages, regular expressions, scanners, syntax diagrams, translators
Persistent URL dx.doi.org/10.1145/359842.359853
Journal Communications of the ACM
Citation
Lalonde, W. (1977). Regular right part grammars and their parsers. Communications of the ACM, 20(10), 731–741. doi:10.1145/359842.359853