[webkit-dev] What is the reason for changing JavaScript parser from bison parser(LR) to Top-To-Down Recursion parser?

PandaCanFly zpc85 at 126.com
Wed Nov 30 00:00:00 PST 2011

In my opinion, the bison parser implements LR analyzer, handwritten parser implements Top-To-Down analyzer. I remember some compiling book says "LR analyzer is better and faster than Top-To-Down analyzer". So, your opinon confuses me. Could you give me more information about speed of handwritten parser?

At 2011-11-30 15:47:43,"Oliver Hunt" <oliver at apple.com> wrote:
The handwritten parser has numerous benefits over the old bison generated one, the most basic being:
 * It's more than 2 times faster than the bison parser
 * It doesn't require complete duplication of the grammar to support strict mode (and can identify strict mode in the first place)
 * It fixes a number of bugs inherent in the bison parser due to the way automatic semicolon insertion was implemented.

There are a number of other benefits, but those are the most obvious.


On Nov 29, 2011, at 11:38 PM, PandaCanFly wrote:

Hello everyone,
    I am researching WEBKIT and coming up against difficulty about Javascript parser。As I Know, WEBKIT of old version uses the bison parser to interpret javascript code. But WEBKIT of recently version doesn't uses bison parser. Instead, WEBKIT of recently version uses Top-To-Down Recursion parser.
    I have some details to add. 1) WEBKIT using bison parser has a source file named "Grammar.cpp". 2) I know WEBKIT with 38688 version number uses bison parser.
I hope someone can give me some explanation, thanks.

webkit-dev mailing list
webkit-dev at lists.webkit.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20111130/9560949a/attachment.html>

More information about the webkit-dev mailing list