An experience with antlr, java and python

I just wanted to share a little experience with generating an AS3 parser using antlr and python. I was trying first to create the parser using GNU Flex and Bison in C, probably the best way for a very performancing parser. Yeah, that’s right.. but looking at the antlr syntax I realized that’s easier and easier.

An error occurred.

Moreover I start using this very useful eclipse plugin for antlr debugging which made my life easier!

width: 35em;

The grammar file I created is a compromise between the asdt grammar file and the ECMA-262 grammar specification.

margin: 0 auto;

Error Once finished working on my eclipse project I’ve managed to parse succesfully all the adobe corelibs files using this java test file:

font-family: Tahoma, Verdana, Arial, sans-serif;
1

Please try again later.

the error log for details.

Faithfully yours, nginx.

If you are the system administrator of this resource then you should check Sorry, the page you are looking for is currently unavailable. 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package org.sepy.core.parsers.as3;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import antlr.CommonAST;
import antlr.RecognitionException;
import antlr.TokenStreamException;
public class Application {
public static void main(String argv[])
{
if(argv.length > 0)
{
File file = new File(argv[0]);
if(file.exists())
{
FileInputStream is = null;
try {
is = new FileInputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
AS3Lexer L = new AS3Lexer(is);
AS3Parser P = new AS3Parser(L);
try {
P.compilationUnit();
} catch (RecognitionException e) {
// TODO Auto-generated catch block
System.out.println(" line=" + e.line + ", column="+ e.column);
System.out.println(e.getMessage());
e.printStackTrace(System.err);
} catch (TokenStreamException e) {
// TODO Auto-generated catch block
System.out.println(" line=" + L.getLine() + ", column="+ L.getColumn());
System.out.println(L.getGuessInfo());
System.out.println(e.getMessage());
e.printStackTrace(System.err);
}
CommonAST.setVerboseStringConversion(false, P.getTokenNames());
CommonAST ast = (CommonAST) P.getAST();
System.out.println("Tree:");
System.out.println(ast.toStringTree());
}
}
}
}