Search papers, labs, and topics across Lattice.
This paper introduces the prefix grammar transformation, a method to reduce prefix parsing to ordinary parsing by constructing a new grammar that generates prefixes of the original grammar's strings. This allows leveraging existing parsing algorithms for prefix parsing tasks, crucial for context-free language modeling and constrained generation. The transformation results in only a small increase in grammar size, and a strategy based on algorithmic differentiation is presented for efficient next-token weight vector computation.
Forget specialized prefix-parsing algorithms: a simple grammar transformation lets you use standard parsers for efficient prefix parsing and next-token prediction.
Prefix parsing asks whether an input prefix can be extended to a complete string generated by a given grammar. In the weighted setting, it also provides prefix probabilities, which are central to context-free language modeling, psycholinguistic analysis, and syntactically constrained generation from large language models. We introduce the prefix grammar transformation, an efficient reduction of prefix parsing to ordinary parsing. Given a grammar, our method constructs another grammar that generates exactly the prefixes of its original strings. Prefix parsing is then solved by applying any ordinary parsing algorithm on the transformed grammar without modification. The reduction is both elegant and practical: the transformed grammar is only a small factor larger than the input, and any optimized implementation can be used directly, eliminating the need for bespoke prefix-parsing algorithms. We also present a strategy-based on algorithmic differentiation-for computing the next-token weight vector, i.e., the prefix weights of all one-token extensions, enabling efficient prediction of the next token. Together, these contributions yield a simple, general, and efficient framework for prefix parsing.