ISGLR: Incremental Scannerless GLR
We present the Incremental Scannerless Generalized LR (
ISGLR
) parsing algorithm, which combines the benefits of Incremental Generalized LR (IGLR
) parsing and Scanner-less Generalized LR (SGLR
) parsing. TheISGLR
parser can reuse parse trees from unchanged regions in the input and thus only needs to parse changed regions. We also present incremental techniques for imploding the parse tree to an Abstract Syntax Tree (AST) and syntax highlighting. Scannerless parsing relies heavily on non-determinism during parsing, negatively impacting the incrementality ofISGLR
parsing. We evaluated theISGLR
parsing algorithm using file histories from Git, achieving a speedup of up to 25 times over non-incrementalSGLR
— SPLASH: G: Incremental Scannerless Generalized LR Parsing, Maarten P. Sijm, 2020 ↗