Parsing 如何在yacc中解释此规则&引用;::&引用;{yy列+;=yyleng;返回(TYPESEPnumber);}
我必须修复一个用yacc(解析器生成器)编写的程序,与提供的文件“lexer.l”一起工作,以创建一个小型解释器(我不能对lexer.l进行任何更改)。我在lexer.l文件中发现了这一行,我不知道如何解释它 以下是未知的规则Parsing 如何在yacc中解释此规则&引用;::&引用;{yy列+;=yyleng;返回(TYPESEPnumber);},parsing,yacc,lex,Parsing,Yacc,Lex,我必须修复一个用yacc(解析器生成器)编写的程序,与提供的文件“lexer.l”一起工作,以创建一个小型解释器(我不能对lexer.l进行任何更改)。我在lexer.l文件中发现了这一行,我不知道如何解释它 以下是未知的规则 %% "::" { yycolumn + = yyleng; return (TYPESEPnumber); } %% 有人能帮我了解一下:“在这种情况下是如何工作的吗? 因此,以下测试程序应有效: 程序xx是 { } 如果测试文件像这样简单,我可以使我的yacc解
%%
"::" { yycolumn + = yyleng; return (TYPESEPnumber); }
%%
有人能帮我了解一下:“
在这种情况下是如何工作的吗?
因此,以下测试程序应有效:
程序xx是
{
}
如果测试文件像这样简单,我可以使我的yacc解释器工作文件:
int a;
a = 5;
etc etc..
但不是在我的测试文件中的这几行中。帮助
谢谢大家! 这意味着令牌
:
作为TYPESEPnumber
发送到解析器。(我不知道为什么有人会在令牌id的末尾添加number
)
因此,我希望解析器序言包括:
%token TYPESEPnumber "::"
还有一部像这样的作品
declaration: ID "::" type ';'
(一些教授不使用bison的便捷语法将笨拙的标记标识符别名化为易于理解的引用字符串。但它使语法更易于阅读。)
declaration: ID "::" type ';'