В чем разница между lex/yacc и fslex/fsyacc?
Я изучаю F#, потому что я хотел бы написать лексер и парсер. У меня есть небольшой опыт работы с этим типом обработки, но мне действительно нужно изучить его так же хорошо, как F#.
Достаточно ли изучать lex и yacc при изучении функций лексизации / синтаксического анализа в F#?
Или есть некоторые различия, которые означают, что код для lex / yacc не будет работать с fslex и fsyacc?
2 ответа
Что ж, с помощью lex и yacc вы помещаете код C/C++ в "действия", тогда как с помощью fslex и fsyacc вы помещаете туда код F#, но я полагаю, вы знаете это?
Я думаю, что в остальном они основаны на одних и тех же (установленных / древних) технологиях токенизации и синтаксического анализа, поэтому общая структура / поведение грамматики должно быть схожим, если вы к этому стремитесь...