Related articles |
---|
Yet Another Earley's Parser (YAEP) vmakarov@redhat.com (Vladimir Makarov) (2015-10-13) |
From: | Vladimir Makarov <vmakarov@redhat.com> |
Newsgroups: | comp.compilers |
Date: | Tue, 13 Oct 2015 14:54:36 -0400 |
Organization: | Aioe.org NNTP Server |
Keywords: | parse, tools |
Posted-Date: | 14 Oct 2015 07:36:19 EDT |
A standalone C/C++ library implementing Earley's Parser
called YAEP is available now on
https://github.com/vnmakarov/yaep
Major features of this implementation:
o It makes a simple syntax directed translation.
o It can make error recovery with minimal number
of skipped tokens.
o It can parse an input described by ambiguous
grammar producing one or all abstract
trees in a compact form (DAG).
o It can produce minimal cost abstract trees
of an input described by ambiguous grammar.
o It has two interfaces to describe a grammar
through function calls or through providing
YACC-like description.
o It is pretty fast. It can parse 300K lines
of C code per second. Still it is 2.5-6 times
slower than YACC (1.6 - 3 times with taking
scanner into account).
YAEP is actually a further development of Earley's parser in COCOM
tool set originally written in 2002. The original version has been
sped up to 2 times by implementing new optimizations. Some
optimizations are described briefly on
https://github.com/vnmakarov/yaep/blob/master/README.md
Return to the
comp.compilers page.
Search the
comp.compilers archives again.