Starting on incremental parser
Edit_Tree is now implemented; it takes an existing syntax tree (which is the result of a batch parse), and applies a list of edits described by a KMN list as in Lahav 2008. The result is a parse stream consisting of a mix of terminals and subtrees. The next step is to implement the incremental parser. Wagner, Graham 1998 gives a better algorithm for this than Lahav 2008; in fact, it incorporates Edit_Tree, although it does not give as much detail. As a first step, I'll keep Edit_Tree separate. WisiToken provides a generalize parser; it handles conflicts in the parse table by spawning parallel parsers. Wagner, Graham 1998 does not include that; it assumes a single parser. So for the first step, it will abort on conflicts; the first test cases will not encounter grammar conflicts. It will also abort for all syntax errors; I'll add error recovery later. The algorithm in Lahav 2008 is significantly different from Wagner, Graham 1998; Lahav's Left_Breakdown changes the tree str...