2010-03-29 1 views
9

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

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

Множественные маркеры на этой линии

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

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

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

Благодаря

+1

Я на самом деле теперь могу сгенерировать парсер в JavaScript, и он прекрасно разбирается в вещах. Но когда я пытаюсь сгенерировать дерево ходок в целевой JavaScript, он не способен. И я думаю, что основной причиной этого является ошибка 2, указанная выше. – Gunner4Life

+0

Я не уверен, какую версию сборки ANTLR вы пытались использовать, но я видел те же ошибки с официальными сборками, которые я пытался использовать. Я только что получил ANTLR tar с сервера perforce и построил его с maven, и, похоже, работа javascript работала для меня - по крайней мере, с моей, по общему признанию, тривиальной грамматикой. –

+0

Я понял, что это за ошибка. Цель JavaScript была нарушена в последних версиях ANTLR, что вызвало эту проблему. Решение состоит в том, чтобы либо построить исходный код, либо использовать более раннюю версию. – Gunner4Life

ответ

0

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

0

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

0

Я пытался получить эту работу, и только удалось генерировать .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

From then on you can use ANTLRWorks 1.2.2 to generate the lexer and parser code by selecting "Generate Code" from the "Generate" menu. ANTLRWorks will place the generated files into an output directory in the folder in which the grammar file resides.

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

3

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

antlr/antlr4-javascript

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

+0

Проект antlr4-javascript теперь имеет тестирование на основе браузера и гораздо более сложен. В источнике JavaScriptTarget появляется целевая цель релиза ANTLR 4.5. – jhyry

+4

Ссылка не работает –

+0

Вот лучшая ссылка на актуальную информацию: https://github.com/antlr/antlr4/blob/master/doc/javascript-target.md –

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

  • Нет связанных вопросов^_^