为什么@ 1.first_column的值始终为0

时间:2013-06-05 04:14:51

标签: bison yacc lex

我想在出现问题时报告错误消息,列和行.yylineno没问题,运行良好,但无论我如何修改测试文本,@ 1.first_column的值始终为0。

yacc文件片段:

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;}
;

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

2 个答案:

答案 0 :(得分:1)

flex未填写列字段;你必须自己做。约翰莱文的高度推荐书Flex and Bison就有一个例子;幸运的是,相关部分(目前)以O'Reilly excerpt

的形式提供

答案 1 :(得分:0)

您是否在词法分析器中设置了yylloc?如果没有,那么除了1之外,你不会看到你提到的值。