эквивалент gppg / gplex в D? - PullRequest
5 голосов
/ 06 июля 2011

Когда я работал в C #, я обнаружил, что генераторы gppg и gplex парсер / лексер идеально подходят для моих нужд. Мне интересно, есть ли что-то подобное для языка программирования D (то есть утилита, которая, учитывая грамматику в BNF или EBNF, выводит код D, который лексизирует / анализирует этот язык в абстрактном синтаксическом дереве).

Самое близкое, что я нашел, это Голди , но мне так трудно понять это, что я не могу ничего запустить и запустить.

Ответы [ 2 ]

2 голосов
/ 07 июля 2011

Я считаю, что Голди очень хороша для контекстно-нечувствительных грамматик, вы уверены в этом? Кроме того, http://www.wikiservice.at/d/wiki.cgi?GrammarParsers перечисляет некоторые, не знаю, какие еще разрабатываются. Если ANTLR-D все еще работает, это, вероятно, один из лучших вариантов.

1 голос
/ 16 июля 2011

Голди, пожалуй, лучшая ставка для вас, но есть также ragel, который может испускать D. Это не совсем то, о чем вы просили (составные автоматы), хотя этого может быть достаточно для многих случаев, и это действительно приятно.

Магистральная версия может компилироваться в код D2 с недокументированным ключом -E, я пока не уверен, насколько он зрелый.

http://www.complang.org/ragel/

...