2016-06-01 7 views
0

habe ich eine Grammatik, die Erhalten des Index eines Attributs in Parser in antlr4

statement 
    : ME second_part 
    { 
      System.out.println($ME.getStartIndex()); 
      System.out.println($second_part.getStartIndex()); 
    } 
    ; 

ME : 'me' 
    ; 
SPACES : [ \t\n\r] -> channel(HIDDEN); 

ich die Startindizes Me und second_part erhalten wollen wie

aussieht.

Ich erhalte eine Fehlermeldung, wenn ich die oben antlr4 Grammatik

System.out.println ($ second_part.getStartIndex()) laufen;

fehlende Attribut Zugriff auf Regel Referenz second_part in $ second_part

Wie kann ich Startindex von second_part erhalten?

Antwort

1

Jede Parser-Regel ist eine ParserRuleContext, die eine start und stop Token hat. Versuchen Sie stattdessen Folgendes:

System.out.println($second_part.start.getStartIndex()); 
Verwandte Themen