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. TheISGLRparser 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 ofISGLRparsing. We evaluated theISGLRparsing 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 ↗