2016-01-05 3 views
4

Как создать парсер в erlang, который примет правильную формулу формулы предложения и преобразует ее в некоторое внутреннее представление.Как создать парсер в erlang

Список доступных инструментов для создания парсера в erlang, а также проекты, которые их используют, могут быть полезны.

+0

Чтобы ответить на ваш вопрос, необходимо знать более подробную информацию. –

+2

Посмотрите документацию для [leex] (http://erlang.org/doc/man/leex.html) и [yecc] (http://erlang.org/doc/man/yecc.html). –

+0

Вот как создать собственный парсер для выражений без использования инструментов генератора парсеров: http://stackoverflow.com/questions/2245962/is-there-an-alternative-for-flex-bison-that-is-usable -он-8 встроенных-система-бит/2336769 # 2336769 –

ответ

6

Вы можете использовать leex, yecc, spell1 и некоторые другие.

  • leex: Регулярное выражение на основе лексического анализатора генератор Эрланга, похожий на LEX или изгибаться. Файл lexer содержит части для Definition, Rules, а также коды Erlang.

  • yecc: Генератор парсер LALR-1 для Erlang, аналогичный yacc. Файл генератора парсера содержит части для Non-terminals, Terminals, Rules и Root-symbols.

  • spell1: Генератор пар LL (1) для Erlang и LFE, который является языком диалектов Лиспа на вершине Эрланг.

  • neotoma: Генератор парсера Packrat для Erlang для анализа грамматических выражений (PEG).


Некоторые проекты с открытым исходным кодом, который использует их:

  • Efene: Альтернативный синтаксис языка программирования Erlang с упором на простоту, удобство использования. Он использует leex и yecc для анализа синтаксиса языка Efene.
  • ErlyDTL: Шаблоны Django для Erlang, который использует leex и yecc для анализа языка шаблонов на основе Django.
  • Tnesia: База данных временного ряда, которая имеет SQL-подобный язык (TQL), который реализован с помощью leex и yecc.

Этот Slide содержит несколько полезных примеров о том, как их использовать.

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