我想在出现问题时报告错误消息,列和行.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;}
;
我没有搜索类似的问题,请帮助我!
答案 0 :(得分:1)
flex
未填写列字段;你必须自己做。约翰莱文的高度推荐书Flex and Bison
就有一个例子;幸运的是,相关部分(目前)以O'Reilly excerpt
答案 1 :(得分:0)
您是否在词法分析器中设置了yylloc
?如果没有,那么除了1
之外,你不会看到你提到的值。