Re: [ANTLR] Zeile und Spalte bei Fehler in Treeparser ermitteln
- From: Peter Rill <peterrill@xxxxxxxx>
- Date: Tue, 6 Sep 2005 14:20:02 +0200
Am Mon, 05 Sep 2005 17:31:28 +0200 schrieb Jochen Theodorou:
> Peter Rill schrieb:
>> Hallo,
>>
>> ich habe für meine Anwendung eine Skriptspreache mit ANTLR realisiert.
>> Jetzt hätte ich gerne beim Auftreten eines Fehlers im Treeparser dem
>> Benutzer die genaue Stelle im Skript angezeigt, bei der der Fehler
>> auftritt. Das Interface AST bietet ja die Methoden getLine() und
>> getColumn(). Bei mir kommt dort aber immer nur 0,0 raus.
> [...]
>>
>> Leider ist ja die Javadoc zu ANTLR auch sehr lückenhaft und viele Methoden
>> werden gar nicht dokumentiert.
>
> der Source (und auch diverse Dokumente im Netz) verraten, dass BaseAST
> (Vater von CommonAST) zwar eine getLine-Methode hat, diese aber immer 0
> zurückgibt. Wenn du selber was implementieren willst, dann musst du eine
> eigene AST-klasse verwenden, die dann sowas macht:
>
> class MyAST{
> [...]
> public void initialize(AST ast) {
> super.initialize(ast);
> line = ast.getLine();
> col = ast.getColumn();
> }
> }
Die Methode wird bei mir nie aufgerufen :-(
> um die ast-Klasse zu setzen musst du sowas machen:
>
> parser.setASTNodeClass("MyAST");
Ich habe auch noch gefunden, dass man es den options setzen kann:
options {
ASTLabelType=MyAST; }
Dann wird im erzeugten Quellcode MyAST anstelle von AST verwendet.
Ich habe jetzt die Lösung gefunden. Man muss void initialize(Token token)
überschreiben:
public void initialize(final Token token)
{
super.initialize(token);
line = token.getLine();
column = token.getColumn();
}
--
Tschüß
Peter
.
- Follow-Ups:
- Re: [ANTLR] Zeile und Spalte bei Fehler in Treeparser ermitteln
- From: Jochen Theodorou
- Re: [ANTLR] Zeile und Spalte bei Fehler in Treeparser ermitteln
- References:
- [ANTLR] Zeile und Spalte bei Fehler in Treeparser ermitteln
- From: Peter Rill
- Re: [ANTLR] Zeile und Spalte bei Fehler in Treeparser ermitteln
- From: Jochen Theodorou
- [ANTLR] Zeile und Spalte bei Fehler in Treeparser ermitteln
- Prev by Date: Re: Wo passiert das Font-rendering ?
- Next by Date: Re: Frage zu Regex
- Previous by thread: Re: [ANTLR] Zeile und Spalte bei Fehler in Treeparser ermitteln
- Next by thread: Re: [ANTLR] Zeile und Spalte bei Fehler in Treeparser ermitteln
- Index(es):
Relevant Pages
|