Compiling Java 9

Stephan Herrmann stephan.herrmann at berlin.de
Wed Nov 16 22:26:34 UTC 2016


On 11/16/2016 11:01 PM, Jonathan Gibbons wrote:
>
>
> On 11/16/2016 01:41 PM, Stephan Herrmann wrote:
>>
>> At the end of the day we need full pattern matching right?
>
> Not really, at least, not in javac.
>
> Words like 'module', 'requires', etc are lexed as identifiers. When we get to the point where the grammar would accept one of these
> words as a keyword,  we simply check to see if we have an identifier with the appropriate value.
>
> -- Jon

OK, feedback from the parser to the scanner to tell it
whether the current context accepts a specific restricted keyword.

And we may safely assume regularity of the grammar, i.e.,
the above approach will never lead to ambiguities, right?

Fictitious counter example

    ModuleDeclaration:
      module open Identifier ModuleBody;
      module Identifier ModuleBody;

With this the second token could be keyword or identifier, and we're stuck, aren't we?

May we assume that the grammar will not be extended in such ambiguous ways?

For all tools that read from the start of the file this is good news.

Still no good news for tools wishing to process just a fragment of the text.

thanks,
Stephan


More information about the jigsaw-dev mailing list