В чем разница между lex / yacc и fslex / fsyacc? - PullRequest
8 голосов
/ 14 февраля 2010

Я изучаю F #, потому что я хотел бы написать лексер и парсер. У меня есть небольшой опыт работы с этим типом обработки, но мне действительно нужно изучить его правильно, а также F #.

Достаточно ли изучать функции lex и синтаксический анализ F # для изучения lex и yacc?

Или есть некоторые различия, которые означают, что код для lex / yacc не будет работать с fslex и fsyacc?

Ответы [ 2 ]

9 голосов
/ 14 февраля 2010

Лично я нашел эти OcamlLex и OcamlYacc учебники, отличные ресурсы для начала - легко следовать, и вы можете перевести большинство всего в этих учебниках для FsLex / FsYacc почти дословно.

5 голосов
/ 14 февраля 2010

Ну, с помощью lex и yacc вы помещаете код C / C ++ в «действия», тогда как с помощью fslex и fsyacc вы помещаете туда код F #, но я предполагаю, что вы это знаете?

Я думаю, что в остальном они основаны на одних и тех же (установленных / древних) технологиях токенизации и синтаксического анализа, поэтому общая структура / поведение грамматики должно быть одинаковым, если вы к этому стремитесь ...

...