ANTLR JavaScript Target - PullRequest
       10

ANTLR JavaScript Target

9 голосов
/ 29 марта 2010

Я использовал ANTLR для генерации грамматики синтаксического анализатора + дерева для языка разметки с целью Java, которая работает нормально. Сейчас я пытаюсь получить цель в JavaScript, чтобы использовать ее в своем веб-браузере.

Однако я не смог найти ни одной хорошей документации о том, как это сделать. Я использую Eclipse с ANTLR IDE, и когда я указываю язык как JavaScript, я получаю следующие ошибки.

Несколько маркеров на этой линии

  • (10): внутренняя ошибка: группа JavaScript не удовлетворяет интерфейсу. ANTLRCore: несоответствующие аргументы в этих шаблонах [treeParser (грамматика, имя, области действия, токены, tokenNames, globalAction, правила, numRules, bitsets, labelType, ASTLabelType , суперкласс, члены, filterMode)]

  • (10): внутренняя ошибка: java.util.NoSuchElementException: нет такого атрибута: filterMode в контексте шаблона [treeParser]

Если бы кто-нибудь мог помочь мне с этим или указать мне какой-нибудь материал, который я мог бы прочитать о цели JavaScript с помощью ANTLR, это было бы здорово.

Спасибо

Ответы [ 4 ]

3 голосов
/ 09 сентября 2014

Существует новая цель JS Lang для ANTLR4, которая была опубликована на GitHub почти 3 месяца назад:

ANTLR / antlr4-Javascript

Он еще не интегрирован в официальный релиз, но вы можете просто добавить его в последнюю кодовую базу ANTLR4 и перекомпилировать ANTLR самостоятельно.

0 голосов
/ 13 сентября 2011

Кажется, что цель JavaScript снова сломана в дистрибутиве 3.4. 3.3 у меня нормально работает.

0 голосов
/ 01 августа 2013

Я пытался заставить это работать, и только что смог успешно сгенерировать файлы .js после прочтения этого:

http://www.antlr3.org/pipermail/antlr-interest/2011-August/042417.html

Из должности:

Вот как начать работу с ANTLR и серверной частью JavaScript:

  1. Загрузить ANTLRWorks 1.2.2: < http://antlr.org/download/antlrworks-1.2.2.jar>. Цель JavaScript работает только тогда, когда IDE генерирует код лексера и анализатора (см. < http://antlr.1301665.n2.nabble.com/maven-plugin-and-javascript-target-td3647109.html>). Если вы попытаетесь запустить ANTLR v3.1 из командной строки, вы увидите ошибку сообщение "ошибка (10): внутренняя ошибка: группа JavaScript не удовлетворяет Интерфейс ANTLRCore ".
  2. Загрузите дистрибутив JS: http://antlr.org/download/antlr-javascript-runtime-3.1.zip

С этого момента вы можете использовать ANTLRWorks 1.2.2 для генерации лексера и парсера код, выбрав «Сгенерировать код» в меню «Сгенерировать». ANTLRWorks будет поместите сгенерированные файлы в каталог output в папке, в которой файл грамматики находится.

Обратите внимание, что если в процессе генерации возникает ошибка, то по какой-то причине действие «Создать код» больше не работает. Просто закройте грамматику и повторно откройте его из меню «Открыть недавние».

0 голосов
/ 10 марта 2011

Вы должны использовать последнюю версию (3.3), в предыдущих версиях цель javascript была неправильно интегрирована. Там все еще есть некоторые ошибки, но вы можете увидеть рабочий пример с некоторыми рекомендациями и ссылками на http://blog.barvinograd.com/2011/03/online-function-grapher-formula-parser-part-2/

...