Ubuntu 以下lex/yacc示例的正确解释

Ubuntu 以下lex/yacc示例的正确解释,ubuntu,compiler-construction,ubuntu-14.04,yacc,lex,Ubuntu,Compiler Construction,Ubuntu 14.04,Yacc,Lex,我很难理解下面的代码。如果可能的话,建议我一个网站,我可以阅读文档或解释代码请与每一个细节 %{ int yylineno; %} %% ^(.*)\n printf("%4d\t%s", ++yylineno, yytext); %% int main(int argc, char *argv[]) { yyin = fopen(argv[1], "r"); yylex(); fclose(yyin); } 您发布的代码是lex(或flex)代码。它是lex(或类似flex)程序将生成

我很难理解下面的代码。如果可能的话,建议我一个网站,我可以阅读文档或解释代码请与每一个细节

%{
int yylineno;
%}
%%
^(.*)\n    printf("%4d\t%s", ++yylineno, yytext);
%%
int main(int argc, char *argv[]) {
yyin = fopen(argv[1], "r");
yylex();
fclose(yyin);
}

您发布的代码是lex(或flex)代码。它是lex(或类似flex)程序将生成的词法分析器规范。如今,flex的应用比lex更广泛,尽管我相信它们彼此非常兼容

这位官员很好。手册中有一些简单的例子,比如你给出的例子


希望这能有所帮助。

到目前为止,您对此有何看法?