2010-02-14 14 views
8

Estoy aprendiendo F # porque me gustaría escribir un lexer y un analizador. Tengo un poco de experiencia con este tipo de procesamiento, pero realmente necesito aprenderlo correctamente así como F #.¿Cuál es la diferencia entre lex/yacc y fslex/fsyacc?

Al aprender la funcionalidad de lectura/escritura de F #, ¿está estudiando lex y yacc suficiente?

¿O hay algunas diferencias que significan que el código para lex/yacc no funcionará con fslex y fsyacc?

Respuesta

9

Personalmente, encontré estos tutoriales OcamlLex y OcamlYacc excelentes recursos para comenzar, fáciles de seguir, y puede traducir casi todo en esos tutoriales para FsLex/FsYacc casi textualmente.

+3

Tenga en cuenta que 'as' no funciona en' fslex', que es una limitación exasperante. –

5

Bueno, con lex y yacc, pones el código C/C++ en las 'acciones', mientras que con fslex y fsyacc pones el código F # allí, pero supongo que sabes esto?

Creo que de lo contrario se basan en los mismos (antiguos) establecidos/tokenizing tecnologías y de análisis, por lo que la estructura general/comportamiento de la gramática debería ser similar, si eso es lo que está buscando ...

+0

Todavía estoy aprendiendo tanto F # como lex/yacc. La naturaleza de la programación funcional parece dificultar la depuración, por lo que no quiero tener un comportamiento extraño porque estoy usando la sintaxis incorrecta. :-) –

Cuestiones relacionadas