0

我正在尝试运行以下程序,但出现无法识别的规则: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;
}
4

1 回答 1

0

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

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

%% // HERE

int main(void)                            //C Code Section
.....
于 2013-05-19T01:35:07.710 回答