0
我想用flex來處理圖案。在這種情況下,常量和函數名稱都是以大寫字母開頭的字母字符串。 例如,在 Mother(Liz, Bob)
中,如何區分Mother
和Liz
? 我想(
是一個單一的令牌,所以我不能把Mother(
作爲一種模式。Flex如何處理模糊圖案
我想用flex來處理圖案。在這種情況下,常量和函數名稱都是以大寫字母開頭的字母字符串。 例如,在 Mother(Liz, Bob)
中,如何區分Mother
和Liz
? 我想(
是一個單一的令牌,所以我不能把Mother(
作爲一種模式。Flex如何處理模糊圖案
通常,不需要爲不同類型的標識符生成不同的標記類型。解析器不應該需要這種區分,如果不同的用途可以在句法上加以區分。 (如果您需要語義信息來區分,並且沒有該信息的話可能含糊不清,那麼您可能需要語義反饋,但在這裏並不是這樣。)
如果您沒有解析器,你需要做一些句法分析。舉例來說,函數名稱是總是後跟(
--這意味着您的語言不允許使用更高階的函數。然後,您可以編寫一個圍繞yylex
的包裝,該包裝預先讀取一個標記併發出FUNCTION_NAME
或CONSTANT_NAME
,具體取決於以下標記。