Sciweavers

ICFP
2002
ACM

Packrat parsing: : simple, powerful, lazy, linear time, functional pearl

14 years 11 months ago
Packrat parsing: : simple, powerful, lazy, linear time, functional pearl
Packrat parsing is a novel technique for implementing parsers in a lazy functional programming language. A packrat parser provides the power and flexibility of top-down parsing with backtracking and unlimited lookahead, but nevertheless guarantees linear parse time. Any language defined by an LL(k) or LR(k) grammar can be recognized by a packrat parser, in addition to many languages that conventional linear-time algorithms do not support. This additional power simplifies the handling of common syntactic idioms such as the widespread but troublesome longest-match rule, enables the use of sophisticated disambiguation strategies such as syntactic and semantic predicates, provides better grammar composition properties, and allows lexical analysis to be integrated seamlessly into parsing. Yet despite its power, packrat parsing shares the same simplicity and elegance as recursive descent parsing; in fact converting a backtracking recursive descent parser into a linear-time packrat parser of...
Bryan Ford
Added 13 Dec 2009
Updated 13 Dec 2009
Type Conference
Year 2002
Where ICFP
Authors Bryan Ford
Comments (0)