Lex文件无法识别的规则

时间:2013-05-19 01:17:17

标签: linux lex

我正在尝试运行以下程序,并且我得到了无法识别的规则:37。不确定为什么它在第37行给出了我的错误。

命令:$ lex mycsv2html.l

%{                      //Definition Section 

#include <stdin.h>                         
#include <stdout.h>
int c;
extern int yylval;
%}


%%                      // Rule Section
" "       ;
[\n]     {
            c = yytext[0];
            yylval = c - '\n';
            return(br);
          }
["]     {
            c = yytext[0];
            yylval = c - '';
            return('');
          }
[<]     {
            c = yytext[0];
            yylval = c - '';
            return('&lt');
          }

[>]     {
            c = yytext[0];
            yylval = c - '';
            return('&gt');
          }

int main(void)                            //C Code Section
{
    /* Call the lexer, then quit. */
    yylex();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您应该在第二部分(规则)和第三部分(C代码)之间添加%%

.....
[>]     {
        c = yytext[0];
        yylval = c - '';
        return('&gt');
      }

%% // HERE

int main(void)                            //C Code Section
.....