2016-10-03 3 views
0

Я пытаюсь построить абстрактное дерево синтаксиса для Java в Python с пакетом antlr4. Я скачал Java грамматику из https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4ANTLR error 134

Я хочу использовать эту грамматику файл для создания JavaLexer и JavaParser для python2.

Когда я говорю

"$ antlr4 -Dlanguage=Python2 Java8.g4" 

ошибка ошибки occured.That является

ошибка (134): Java8.g4: 73: 0: символ конфликты типа с сгенерированным кодом в целевом языке или время работы

ПРИМЕЧАНИЕ. Я удалил детали с помощью Character.isJavaIdentifierPart(). Поскольку эти строки не подходят для python, и я буду использовать только ASCII.

ответ

2

У Python есть встроенная функция: type. Antlr4 печатает ошибку на линии 73 грамматики:

type 
    : primitiveType 
    | referenceType 
    ; 

Похоже, есть конфликт имен, и вы должны переименовать type к чему-то еще в вашей грамматике.

+0

Спасибо. Это работает. ** type ** ключевое слово используется один раз в грамматике, и я заменил тип typeType. – Alperen

Смежные вопросы