S'il vous plaît aidez-moi ce problème: je l'exemple sur la page: http://www.antlr.org/wiki/pages/viewpage.action?pageId=1760S'il vous plaît aidez-moi à créer Parse arbre de java et ANTLR
pour utiliser cet exemple, j'ai construit la grammaire P sur ANTLRWork 1.4 et générer le code pour avoir la classe PLexer
et PParser
. Mais quand je lance ce code sur Java Jcreator 4.5:
import org.antlr.runtime.*;
import org.antlr.runtime.tree.*;
import org.antlr.runtime.debug.*;
import org.antlr.runtime.ANTLRStringStream;
import org.antlr.runtime.CharStream;
import ParserAndLexer.*;
public class TestP {
public static void main (String[] args) throws Exception{
ANTLRInputStream input=new ANTLRInputStream(System.in);
PLexer lexer=new PLexer(input);
CommonTokenStream tokens=new CommonTokenStream(lexer);
ParseTreeBuilder builder=new ParseTreeBuilder("prog");
PParser parser=new PParser(tokens,builder);
parser.prog();
System.out.println(builder.getTree().toStringTree());
}
}
l'erreur apparaît:
D:\CAO HOC\TAI LIEU THAM KHAO\ANTLR-EBNF\CREATE PARSTREE\TestP.java:14:
cannot find symbol
symbol : constructor PParser(org.antlr.runtime.CommonTokenStream,org.antlr.runtime.debug.ParseTreeBuilder)
location: class ParserAndLexer.PParser
PParser parser=new PParser(tokens,builder);
Lorsque je laisse tomber un argument builder
dans PParser(tokens,builder)
alors que l'erreur ne a trouvé. mais je ne sais pas comment courir pour avoir le résultat suivant:
java TestP
int i;
i=4;
(<grammar prog> (prog (decl (type int) i ;) (stat i = (expr 4))))