The difference between comment and document about the parser

Jonathan Gibbons jonathan.gibbons at oracle.com
Sat Jan 23 17:05:49 UTC 2021


Going back in the public record, I note that JLS 3rd Edition, chapter 
18[1] says:

/The grammar presented in this chapter is the basis for the reference 
implementation. Note that it is not an LL(1) grammar, though in many 
cases it minimizes the necessary look ahead./

-- Jon

1: https://docs.oracle.com/javase/specs/jls/se6/html/syntax.html

On 1/22/21 12:49 AM, Guoxiong Li wrote:
> Hi all,
>
> The comment at class 
> jdk.compiler/com.sun.tools.javac.parser.JavacParser states it as below.
>
> ```
> /** The parser maps a token sequence into an abstract syntax
>  *  tree. It operates by recursive descent, with code derived
>  *  systematically from an LL(1) grammar. For efficiency reasons, an
>  *  operator precedence scheme is used for parsing binary operation
>  *  expressions.
> ```
>
> And the document of the project `Compiler Grammar`[1] states it as below.
>
> > The parser that is currently in the javac compiler is a hand-written 
> LALR parser.
>
> We can see that one is  LL(1) and another is LALR. I think the comment 
> may be right.
> No matter which one is the right description, the difference is not 
> acceptable and need to be unified.
>
> What is your opinion? Any idea is appreciated.
>
> [1] http://openjdk.java.net/projects/compiler-grammar/ 
> <http://openjdk.java.net/projects/compiler-grammar/>
>
> Best Regards.
>
> -- xiong
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20210123/30bc5b3d/attachment.htm>


More information about the compiler-dev mailing list