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

看板C_and_CPP作者 (妤欣)時間4年前 (2019/07/16 15:58), 編輯推噓2(209)
留言11則, 2人參與, 4年前最新討論串1/1
目前定義了一些關鍵字 諸如 int double char 如果我在 .l 檔案要對這三個自訂的關鍵字以外的其他所有 token做事 請問有辦法實作嗎? 我的做法: “int” return INT; “double” return DOUBLE; “char” return CHAR; .* return token; 發現印出來的時候 int 會變成token而不是INT -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.205.72 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1563263884.A.AF1.html

07/16 18:23, 4年前 , 1F
這是你的原始程式嗎?你用的雙引號不對,變成全形了
07/16 18:23, 1F

07/16 18:24, 4年前 , 2F
這樣 match 時當然前三項都不合
07/16 18:24, 2F

07/16 18:25, 4年前 , 3F
建議用置底文的方法貼程式碼,免得自己手抄抄錯
07/16 18:25, 3F

07/17 08:15, 4年前 , 4F
抱歉我用手機編輯,回家用電腦再更新,謝謝
07/17 08:15, 4F

07/17 13:26, 4年前 , 5F
如果你的輸入,同一行中在關鍵字前後還有別的字或空白,
07/17 13:26, 5F

07/17 13:26, 4年前 , 6F
會配對到最後一行的 .* (最長配對) 所以該行整行變成
07/17 13:26, 6F

07/17 13:27, 4年前 , 7F
只輸出一個 token
07/17 13:27, 7F

07/17 13:28, 4年前 , 8F
但我猜你寫 .* 並不是想要這個效果
07/17 13:28, 8F

07/17 13:29, 4年前 , 9F
只是不知道輸入資料是什麼,期望得到的結果又是什麼
07/17 13:29, 9F

07/17 13:31, 4年前 , 10F
一般 token 會定義允許和不允許的字元,空白不會算在內
07/17 13:31, 10F

07/17 13:32, 4年前 , 11F
你這樣寫是允許 token 由任何字元組成,包括空白
07/17 13:32, 11F
文章代碼(AID): #1TBOEChn (C_and_CPP)