2010-02-14 94 views
8

我正在學習F#,因爲我想編寫一個詞法分析器和解析器。我對這種處理有一點點經驗,但真的需要像F#一樣正確地學習它。lex/yacc和fslex/fsyacc有什麼區別?

當學習F#的Lexin/Parsing功能時,正在學習lex和yacc是否足夠?

還是有一些差異,這意味着lex/yacc的代碼將不能與fslex和fsyacc一起使用嗎?

回答

9

我個人發現這些OcamlLexOcamlYacc教程是開始的優秀資源 - 易於使用,您可以在這些教程中爲FsLex/FsYacc幾乎逐字地翻譯大部分內容。

+3

請注意,'as'在'fslex'中不起作用,這是一個令人生氣的限制。 – 2010-12-05 12:18:05

5

好吧,用lex和yacc,你把C/C++代碼放在'actions'中,而用fslex和fsyacc你把F#代碼放在那裏,但我想你知道這個嗎?

我認爲他們正在以其他方式基於相同的(建立/古)標記化和解析技術,所以一般的結構/語法的行爲應該是相似的,如果這就是你以後......

+0

我仍然在學習F#和lex/yacc。函數式編程的本質似乎使調試變得更加困難,所以我不想陷入奇怪的行爲,因爲我使用了錯誤的語法! :-) – 2010-02-14 07:17:41