flex 2.5.35在lex文件中使用ctrl-M时出错

时间:2016-12-19 11:01:46

标签: flex-lexer yacc lex lexer

我有一个简单的lex文件。

%{
#include <stdio.h>
%}

space_char      [ \t\^M]
space           {space_char}+ 

%%

%%

int yywrap(void) {
    return 1;
}

int main(void) {
    yylex();
    return 0;
}

当我使用flex-2.5.35编译此文件时,它会出现以下错误: lex.l:5:坏人物: lex.l:5:名字定义两次

但是,使用flex-2.5.4,它运行良好。 我理解这个错误是由于特殊字符ctrl-m(回车)。我想知道flex-2.5.35是否不支持ctrl-l,ctrl-m等特殊字符?如果是这样,那么替代方式是什么?请注意,我仅限于使用2.5.35。

感谢。

1 个答案:

答案 0 :(得分:0)

与C一样,您可以使用\r作为回车符。