作者OfficeGL (妤欣)
看板C_and_CPP
标题[问题] lex reg 关键字之外的token如何表示
时间Tue Jul 16 15:58:02 2019
目前定义了一些关键字
诸如 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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1563263884.A.AF1.html
1F:推 Schottky: 这是你的原始程式吗?你用的双引号不对,变成全形了 07/16 18:23
2F:→ Schottky: 这样 match 时当然前三项都不合 07/16 18:24
3F:→ Schottky: 建议用置底文的方法贴程式码,免得自己手抄抄错 07/16 18:25
4F:→ OfficeGL: 抱歉我用手机编辑,回家用电脑再更新,谢谢 07/17 08:15
5F:推 Schottky: 如果你的输入,同一行中在关键字前後还有别的字或空白, 07/17 13:26
6F:→ Schottky: 会配对到最後一行的 .* (最长配对) 所以该行整行变成 07/17 13:26
7F:→ Schottky: 只输出一个 token 07/17 13:27
8F:→ Schottky: 但我猜你写 .* 并不是想要这个效果 07/17 13:28
9F:→ Schottky: 只是不知道输入资料是什麽,期望得到的结果又是什麽 07/17 13:29
10F:→ Schottky: 一般 token 会定义允许和不允许的字元,空白不会算在内 07/17 13:31
11F:→ Schottky: 你这样写是允许 token 由任何字元组成,包括空白 07/17 13:32