В чем разница между lex / yacc и fslex / fsyacc?

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

Достаточно ли изучать lex и yacc при изучении функций лексирования / синтаксического анализа F #?

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


person Alex Angas    schedule 14.02.2010    source источник


Ответы (2)


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

person Juliet    schedule 14.02.2010
comment
Обратите внимание, что as не работает в fslex, что вызывает раздражение. - person J D; 05.12.2010

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

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

person Brian    schedule 14.02.2010
comment
Я все еще изучаю F # и lex / yacc. Природа функционального программирования, похоже, затрудняет отладку, поэтому я не хочу сталкиваться со странным поведением из-за того, что использую неправильный синтаксис! :-) - person Alex Angas; 14.02.2010