fall
fall is a parsing framework designed for tools that interact with source code, such as editors, IDEs, refactoring tools, and code formatters. Unlike abstract syntax trees, fall produces lossless syntax trees that preserve all whitespace and comments, allowing exact reconstruction of the original text. The framework uses a unified syntax tree data structure across all languages, enabling non-generic code to process any language and providing a single C API for syntax tree interaction. Parsers handle incomplete input gracefully, recognizing syntactic constructs even when required elements are missing and resynchronizing after errors. Key design goals include interactive grammar development with simultaneous visualization of grammar, input, and parse tree; incremental parsing that only reparses modified blocks; and fast performance even for full reparse scenarios. The tree model centers on a lightweight, copyable Node handle representing a text range with type and subranges, with automatically generated typed wr