XSLT Earley: First Steps to a Declarative Parser Generator
summary
Proof-of-concept XSLT Earley implements the Earley parsing algorithm in XSLT 3, consuming grammars expressed as Invisible XML and emitting XML parse trees; it handles any context‑free grammar, supports ambiguous parses (optionally returning multiple parse trees), and sidesteps Rex’s LL(1) lookahead limits. Implementation works but is not yet fully optimized (uses map/merge hacks, parameters to avoid infinite recursion). Source, examples and paper live on GitHub and the conference proceedings.
AI-written summary · about
chapters (10)
- 0:00Introduction and motivation
- 2:27What is a parser and grammar
- 7:12Why use XSLT for parsing
- 11:55Limitations of existing tools
- 15:34Introducing the Earley algorithm
- 17:04XSLT parser design and grammar input
- 18:56Handling ambiguous grammars
- 21:44Language detection with multiple grammars
- 22:49Implementation details and XSLT challenges
- 23:57Q&A session
related talks
37mThe Elixir parser under the microscope
29mMy Little Parser: Tooling is Magic
09mScala Parser Combinators: The Easier Way to Create an External DSL
14mLexy: A DSL Library For C++ Parsing
31mSemantics-preserving Transformation of Context-free Grammars into LL(1) Form
01h 10mParsing from first principles
15mA Semantic Framework for PEGs
43mIntegrating generators EDSL's for Spirit X3 (WIP)
