On 01/11/2017 10:28, Michael Dyck wrote:
In the past, it has been said (usually by Brendan Eich) that TC39 intends that the ECMAScript 
grammar be LR(1). Is that still the case? (I'm not so much asking about the "1", but more 
about the "LR".)

If so, I'm wondering how lookahead-restrictions (e.g., [lookahead <! 
terminals]) fit into the LR approach. It seems like there are three possibilities:
  - modify the grammar (before the parser is constructed),
  - modify the construction of the parser, and/or
  - modify the operation of the parser.
It's not clear to me that any of these (or any combination of these) will work.

Has anyone algorithmically generated an LR parser from the spec grammar? If so, 
how did you you handle lookahead-restrictions?

I'm the source of the LR(1) condition.  I've been doing that ever since 
ECMAScript Edition 3, and in fact am using the LR parser to help design and 
debug the spec.  I have an implementation of the parser with a few extensions 
to the LR grammar, including support for parametrized productions, lookahead 
restrictions, and lexer-parser feedback used to disambiguate things such as 
what token / will start.  I validate various things such as making sure that 
there is no place where both an identifier and a regular expression can occur.

    Waldemar

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to