[問題] lex reg 關鍵字之外的token如何表示

作者: OfficeGL (努力上班族)   2019-07-16 15:58:02
目前定義了一些關鍵字
諸如 int double char
如果我在 .l 檔案要對這三個自訂的關鍵字以外的其他所有 token做事
請問有辦法實作嗎?
我的做法:
“int” return INT;
“double” return DOUBLE;
“char” return CHAR;
.* return token;
發現印出來的時候 int 會變成token而不是INT
作者: Schottky (順風相送)   2019-07-16 18:23:00
這是你的原始程式嗎?你用的雙引號不對,變成全形了這樣 match 時當然前三項都不合建議用置底文的方法貼程式碼,免得自己手抄抄錯
作者: OfficeGL (努力上班族)   2019-07-17 08:15:00
抱歉我用手機編輯,回家用電腦再更新,謝謝
作者: Schottky (順風相送)   2019-07-17 13:26:00
如果你的輸入,同一行中在關鍵字前後還有別的字或空白,會配對到最後一行的 .* (最長配對) 所以該行整行變成只輸出一個 token但我猜你寫 .* 並不是想要這個效果只是不知道輸入資料是什麼,期望得到的結果又是什麼一般 token 會定義允許和不允許的字元,空白不會算在內你這樣寫是允許 token 由任何字元組成,包括空白

Links booklink

Contact Us: admin [ a t ] ucptt.com