oracle/graaljs

AST error recovery strategy is missing (aka error-tolerant parser)

Open

#64 geöffnet am 12. Okt. 2018

Auf GitHub ansehen
 (2 Kommentare) (0 Reaktionen) (2 zugewiesene Personen)C++ (212 Forks)auto 404
enhancementgood first issue

Repository-Metriken

Stars
 (2.019 Stars)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

https://github.com/graalvm/graaljs/blob/21177b89d21e8082607d688567a55f020d91626d/graal-js/src/com.oracle.js.parser/src/com/oracle/js/parser/Parser.java#L1062

I'm planning to migrate from beaver JS parser to GraalJS parser for implementing javascript grammar in the eclipse editor. But I realised it doesn't have the implementation for error recovery strategies.

For example: Math.

If I give above js code to the graalJS parser it just returns the syntax error the moment it found the unexpected token - which is completely fine, but it doesn't recover from the error and build the AST model https://github.com/graalvm/graaljs/blob/master/graal-js/src/com.oracle.js.parser/src/com/oracle/js/parser/Parser.java#L1062

FunctionNode null returned here https://github.com/graalvm/graaljs/blob/master/graal-js/src/com.oracle.js.parser/src/com/oracle/js/parser/Parser.java#L378

Being the consumer - I can't build the auto proposals on the "Math." functions since the AST model itself is missing.

For example, here is the implementation for beaver parser recovery https://github.com/enebo/beaver/blob/master/beaver-rt/src/main/java/beaver/Parser.java#L576

Contributor Guide