2016-11-08 44 views
0

我想用flex來處理圖案。在這種情況下,常量和函數名稱都是以大寫字母開頭的字母字符串。 例如,在 Mother(Liz, Bob)中,如何區分MotherLiz? 我想(是一個單一的令牌,所以我不能把Mother(作爲一種模式。Flex如何處理模糊圖案

回答

1

通常,不需要爲不同類型的標識符生成不同的標記類型。解析器不應該需要這種區分,如果不同的用途可以在句法上加以區分。 (如果您需要語義信息來區分,並且沒有該信息的話可能含糊不清,那麼您可能需要語義反饋,但在這裏並不是這樣。)

如果您沒有解析器,你需要做一些句法分析。舉例來說,函數名稱是總是後跟(--這意味着您的語言不允許使用更高階的函數。然後,您可以編寫一個圍繞yylex的包裝,該包裝預先讀取一個標記併發出FUNCTION_NAMECONSTANT_NAME,具體取決於以下標記。