0

我想在出现问题时报告错误消息,列和行。yylineno 可以,工作正常,但是@1.first_column 的值始终为0,无论我如何修改测试文本。

yacc文件片段:</p>

set:SET PARENTHESIS reference EQUAL expression CLOSE_PARENTHESIS {$$ = set_directive($3,$5); }
|error {yyerrok; yyclearin;printf("column is %d",@1.first_column);yyerror("Set directive error!",@1.first_column);YYABORT;}
;

我没有搜索到类似的问题,请帮助我!

4

2 回答 2

1

flex不填写列字段;你必须自己做。约翰·莱文(John Levine)极力推荐的书中有一个例子Flex and Bison;幸运的是,相关部分(目前)可作为 O'Reilly摘录

于 2013-06-05T04:44:57.897 回答
0

yylloc在你的词法分析器中设置吗?1如果没有,那么除了您提到的值之外,您将看不到任何其他内容。

于 2013-06-05T04:50:15.003 回答