2013-10-13 3 views
5

Wygląda na to, że antlr-3.5.1-complete.jar i antlr-3.5.1-complete-no-st3.jar generują kodowanie wykonawcze C w kodzie źródłowym C, które ma wiele "_empty" w kodzie DFA, który jest nie zdefiniowany nigdzie.Antlr 3.5.1 generuje kod dla środowiska wykonawczego C z niezadeklarowanym indentyfikatorem: _empty. jakaś poprawka jest dostępna?

antlr-3.4 generuje kod za pomocą dfa31_T_empty, który powinien być prawidłowym identyfikatorem.

Prawdopodobnie mógłbym to naprawić, definiując _empty jako NULL, ale to jest hack.

Czy jest dostępny jakiś antlr-3.5.2, który naprawia ten błąd?

Cheers, Adrian Pop/

+1

To należy do śledzenia problemów projektu na https://github.com/antlr/antlr3/issues –

Odpowiedz

4

jakie napotkał ten błąd też. Najprostszym i najczystszych rozwiązanie rzeczywiście wydaje się, aby dodać to do gramatyki:

@header 
{ 
    #define _empty NULL 
} 

Innym rozwiązaniem jest dodanie do tego definiować makra listy kompilatora (/D _empty=null wydaje się działać zarówno GCC i MSVC).

Powiązane problemy