如何阻止 Latex 为每个规则输出空格到标准输出

How to stop Lex from outputing whitespace to stdout for every rule

在我的 .l 文件中,我使用正则表达式设置了几个规则,如下所示

%{
  #include <string.h>
%}

%%
[0-9]* {string.append("something");
return 1;}   

[^\n]*   /*ignore*/

鉴于上面的代码,程序每次运行时都会向终端生成白色 space。

如果你想忽略空格,忽略空格:) :

[[:space:]]+      ;

(这也会忽略换行符,因此您可以使用它代替换行符规则。)

默认情况下,(f)lex 对任何无法识别的字符使用默认规则 ECHO;。如果这不是您想要的(通常不包括换能器),则将

%option nodefault

在您的序言中,如果有任何模式可能与您的规则之一不匹配,flex 会警告您。