Подтвердить что ты не робот

Файл грамматики Yacc/Jay для JavaScript?

Возможный дубликат:
Где я могу найти yacc gammar для ECMAscript/Actionscript/Javascript

Я пытаюсь найти файл грамматики для JavaScript для Yacc (желательно для Jay, но поскольку Jay - это клон Yacc. Я должен быть в порядке, так как мне нужно реализовать его на .NET.

4b9b3361

Ответ 1

Думаю, вам придется строить его самостоятельно, но есть намеки на этом пути.

Полная грамматика JavaScript должна быть доступна где-то; быстрый поиск показал мне JavaScript LL (1) Грамматика. (Также есть схема BNF для JavaScript в RPA Toolkit: Parse JavaScript.)

Поскольку вы спрашиваете только о синтаксическом анализаторе, я предполагаю, что у вас уже есть lexer.

Включение этой грамматики в файл Yacc действительно не выглядит таким страшным. Например, существует грамматика C для Yacc.

Ответ 2

Почему бы не дать antlr a go - похоже, что у него есть грамматика для ecmascript:

http://www.antlr.org/grammar/list

Antlr, видимо, также получил время выполнения С#, хотя я использовал его только с Java.

Ответ 3

Вам действительно нужно внедрять его с нуля? Некоторые библиотеки, такие как Jint, будут выполнять ту же работу, быстрее и безопаснее. Jint является интерпретатором javascript в .NET - получил мое собственное одобрение.

Ответ 4

Я пишу свои парсеры с COCO/R для С# http://ssw.jku.at/coco/, потому что он просто работает без необходимости настройки. Но он не совместим с исходным кодом с Yacc, Flex, Bison и т.д. Однако его синтаксис проще. Кроме того, COCO/R поддерживает несколько языков .NET, отличных от С#. ANTLR работает для С#, имеет больше функций, но для чтения документации и настройки инструмента требуется больше времени.