2013-10-13 16 views
5

Es scheint, dass antlr-3.5.1-complete.jar und antilr-3.5.1-complete-no-st3.jar Code-Targeting-C-Laufzeit generiert, die eine Menge der "_empty" Kennung in der DFA hat, die ist nirgends definiert.antlr 3.5.1 generiert Code für C-Laufzeit mit nicht deklariertem Identifikator: _empty. Irgendwelche Fix verfügbar?

antlr-3.4 generiert den Code mit dfa31_T_empty, der die richtige ID sein sollte.

Ich könnte das wahrscheinlich beheben, indem ich _empty als NULL definiere, aber das ist ein Hack.

Gibt es irgendeine Antlr-3.5.2 oder so verfügbar, die diesen Fehler behebt?

Cheers, Adrian Pop/

+1

Diese gehört zum Projekt-Issue-Tracker unter https://github.com/antlr/antlr3/issues –

Antwort

4

ich auch diesen Fehler aufgetreten sind. Die einfachste und sauberste Lösung scheint in der Tat, dies zu Grammatik hinzuzufügen:

@header 
{ 
    #define _empty NULL 
} 

Die andere Lösung ist, dies zu Ihrer Compiler Makroliste hinzuzufügen definieren (/D _empty=null scheint sowohl in der GCC und MSVC zu arbeiten).