我定义以下的别名:莱克斯模式不应对输入
WS [ \t\n]
WSS {WS}*
NEWSS {WS}+
NAME [A-Za-z_][A-Za-z0-9_-]*
WORD [^;]+
VAR_USE ${WSS}{NAME}{WSS}:
VAR_DEF ${VAR_USE}{WSS}{WORD}{WSS};
而且,这两个简单的规则:
{VAR_DEF} cout << "VAR DEF";
{VAR_USE} cout << "VAR USE";
当我运行该程序,我开始写的话,每当我写出第二条规则应该检测到的单词时,只要我写出第一条规则检测到的单词,它就不会有反应。 (它不回声也不能检测)
例如,以下是一个短期的屏幕截图:
第一输入是呼应,第二输入是由第二规则检测到的,第三输入应由第一规则来检测但事实并非如此。可能是什么问题?
我不明白lex规范如何产生输出。 'VAR_DEF'需要两个连续的冒号,而您的输入只有一个冒号。 – rici
哎呀,我把它复制错了。尽管它仍然没有解释它没有被回应。 – sel