10

I'm looking for implementation of Java source code parser written in JavaScript language. Do you know any?

6
  • 2
    For what purpose? Interpreting the code and running it? Colorizing it in HTML? Mapping it into a JSON object? Commented May 13, 2011 at 14:57
  • 2
    What exactly are you trying to do? Commented May 13, 2011 at 14:58
  • @Jeff In the result I would like to have some kind of Abstract Syntax Tree. Commented May 13, 2011 at 15:03
  • @Rocket I'm interested in it for educational purpose. First of all I want to estimate modern JavaScript engines abilities in parsing language with strict type system. Commented May 13, 2011 at 15:10
  • 1
    I don't think I've seen one. I've seen syntax highlighters, but never parsers. Commented May 13, 2011 at 15:11

4 Answers 4

11

Have a look at ANTLR which can have Javascript as a target, with the Java 1.5 grammar at http://www.antlr.org/grammar/1152141644268/Java.g

Edit: link stopped working - try https://github.com/antlr/grammars-v4/blob/master/java/Java.g4 :)

Sign up to request clarification or add additional context in comments.

3 Comments

Hm... Good idea! Thank you, Chris. But, I'm not sure that the performance of such parser would be enough for parsing large amounts of source codes.
ok. This is not the solution which I expected, but currently it is only solution which solves this problem.
@Eliah: "... not sure ... large amounts of source codes " ANTLR produces pretty efficient parsers in general. (My personal bet would be for it, rather than against it.) I suspect the only way to actually find out is produce such a parser and try it. And if you are concerned, why not do this using Java or C++?
5

Here is Java 1.7 parser http://mazko.github.io/jsjavaparser/ using PEG grammar by Roman R Redziejowski http://www.romanredz.se/Mouse/Java.1.7.peg

Comments

3

I don't know of a Java parser per se, but here are some parser generators for Javascript:

If is one of these is ready for prime-time, you should be able to translate the grammar for Java into the requisite form and then use the PGS's to generate a Java parser in Javascript.

Of course, that will only give you a parser. If you want to do type analysis (as your comment seems to be saying), that's not what a parser does.

4 Comments

Thank you for your reply, Stephen. I was working with some of these parser generators. I think its performance is not good enough for parsing large amounts of code with C++ like syntax(like Java), unfortunatelly.
@Eliah - it might seem counter-intuitive, but generated parsers tend to be faster than hand written parsers, especially if the PGS is mature.
I noticed that ANTLR will also generate parsers in Javascript.
@Eliah: You seem concerned about parsing complex ("C++-like") syntax. What specific syntax concerns you, and why do you think a modern parser generator can't handle it? (C++ is in a league by itself and does give modern parser generators real trouble, stackoverflow.com/questions/243383/… but Java is not C++).
-3

Try the Rhino engine?

2 Comments

The OP is looking for the other way around.
Rhino solves opposite problem: it parses JavaScript in Java environment.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.