2009-11-20 30 views
0

我想使用lex/yacc來讀取分隔文本文件。這對於解析器來說是相當平凡的東西,但不同的文本文件具有不同的分隔符,所以我想讓用戶指定文本是否被製表符,空格,逗號,管道,unicode snowmen等等分開。我可以在運行時定義flex令牌嗎?

使用這些工具的常規手段是爲lex和yacc編寫規範,編譯並使用靜態代碼進行解析。但有沒有辦法讓用戶在運行時指定分隔符(並因此重新定義標記)?

我目前正在使用flex/bison,但我很樂意提供小型和便攜式替代品的建議。

回答

0

不,沒有辦法做到這一點。 Lex和Yacc將詞法分析器或分析器表創建爲C程序的一部分,因此您無法在創建它之後對其進行修改。

這不完全清楚你需要解析什麼格式,所以沒有例子我不會提出任何建議。

相關問題