2010-02-14 10 views
8

Sto imparando F # perché mi piacerebbe scrivere un lexer e un parser. Ho un minimo di esperienza con questo tipo di elaborazione, ma ho davvero bisogno di apprenderlo correttamente come F #.Qual è la differenza tra lex/yacc e fslex/fsyacc?

Quando si apprende la funzionalità di lexing/parsing di F #, lo studio di lex e yacc è sufficiente?

Oppure ci sono alcune differenze che significano che il codice per lex/yacc non funzionerà con fslex e fsyacc?

risposta

9

Personalmente ho trovato questi tutorial OcamlLex e OcamlYacc risorse eccellenti per iniziare - facile da seguire, e puoi tradurre quasi tutto in quei tutorial per FsLex/FsYacc quasi alla lettera.

+3

Nota che 'as' non funziona in' fslex', che è una limitazione esasperante. –

5

Bene, con lex e yacc, si inserisce il codice C/C++ nelle 'azioni', mentre con fslex e fsyacc si inserisce il codice F #, ma presumo che tu sappia questo?

Penso che siano altrimenti basano sugli stessi (antichi stabiliti /) tecnologie creazione di token e di analisi, in modo che la struttura generale/comportamento della grammatica dovrebbe essere simile, se è quello che cercate ...

+0

Sto ancora imparando sia F # che lex/yacc. La natura della programmazione funzionale sembra rendere più difficile il debug, quindi non voglio correre in comportamenti strani perché sto usando la sintassi sbagliata! :-) –

Problemi correlati