A1 Refereed original research article in a scientific journal
Generalized LR Parsing Algorithm for Grammars with One-Sided Contexts
Authors: Barash M, Okhotin A
Publisher: SPRINGER
Publication year: 2017
Journal: Theory of Computing Systems
Journal name in source: THEORY OF COMPUTING SYSTEMS
Journal acronym: THEOR COMPUT SYST
Volume: 61
Issue: 2
First page : 581
Last page: 605
Number of pages: 25
ISSN: 1432-4350
eISSN: 1433-0490
DOI: https://doi.org/10.1007/s00224-016-9683-3
Abstract
The Generalized LR parsing algorithm for context-free grammars is notable for having a decent worst-case running time (cubic in the length of the input string, if implemented efficiently), as well as much better performance on "good" grammars. This paper extends the Generalized LR algorithm to the case of "grammars with left contexts" (M. Barash, A. Okhotin, "An extension of context-free grammars with one-sided context specifications", Inform. Comput., 2014), which augment the context-free grammars with special operators for referring to the left context of the current substring, along with a conjunction operator (as in conjunctive grammars) for combining syntactical conditions. All usual components of the LR algorithm, such as the parsing table, shift and reduce actions, etc., are extended to handle the context operators. The resulting algorithm is applicable to any grammar with left contexts and has the same worst-case cubic-time performance as in the case of context-free grammars.
The Generalized LR parsing algorithm for context-free grammars is notable for having a decent worst-case running time (cubic in the length of the input string, if implemented efficiently), as well as much better performance on "good" grammars. This paper extends the Generalized LR algorithm to the case of "grammars with left contexts" (M. Barash, A. Okhotin, "An extension of context-free grammars with one-sided context specifications", Inform. Comput., 2014), which augment the context-free grammars with special operators for referring to the left context of the current substring, along with a conjunction operator (as in conjunctive grammars) for combining syntactical conditions. All usual components of the LR algorithm, such as the parsing table, shift and reduce actions, etc., are extended to handle the context operators. The resulting algorithm is applicable to any grammar with left contexts and has the same worst-case cubic-time performance as in the case of context-free grammars.