[问题] 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