This package provides common data structures used by all Lezer-related parsing—those related to syntax trees and the generic interface of parsers. Their main use is the LR parsers generated by the parser generator, but for example the Markdown parser implements a different parsing algorithm using the same interfaces.
Lezer syntax trees are not abstract, they just tell you which nodes were parsed where, without providing additional information about their role or relation (beyond parent-child relations). This makes them rather unsuited for some purposes, but quick to construct and cheap to store.
@Tree
@SyntaxNodeRef
@SyntaxNode
@NodeIterator
@TreeCursor
@IterMode
@NodeWeakMap
@NodeType
@NodeSet
@NodeProp
@NodePropSource
Buffers are an optimization in the way Lezer trees are stored.
@TreeBuffer
@DefaultBufferLength
@BufferCursor
@Parser
@Input
@PartialParse
@ParseWrapper
Efficient reparsing happens by reusing parts of the original parsed structure.
@TreeFragment
@ChangedRange
@parseMixed
@NestedParse
@MountedTree