YACC 未从后继节点获取值
YACC Not getting the values from successor nodes
我正在做一个学校项目,遇到了一些麻烦。
我有这个yacc语法
FILE : '{' GEOMETRY '}'
;
GEOMETRY : key_type ':' value_point ',' key_coordinates ':' PONTO
;
PONTO : VETOR_MIN2 { printf("%s", $<str>1); }
;
VETOR_MIN2 : '[' numero ',' numero ']'
;
当我在非终端 PONTO 中打印 printf 时,我只得到这个:[
但我应该得到这样的结果:[20, 10]
这里缺少什么?请帮忙。
谢谢你的时间。
规则的语义值是在该规则的操作 运行 之后驻留在 $$
中的值。如果规则没有任何操作(如 VECTOR_MIN2
的情况),则默认操作为 $$ = ;
(除非没有 </code> 或类型不匹配,其中如果没有默认操作)。</p>
<p>如果您希望 <code>VECTOR_MIN2
产生不同的值,您需要添加一个操作并为 $$
分配不同的值。
我正在做一个学校项目,遇到了一些麻烦。
我有这个yacc语法
FILE : '{' GEOMETRY '}'
;
GEOMETRY : key_type ':' value_point ',' key_coordinates ':' PONTO
;
PONTO : VETOR_MIN2 { printf("%s", $<str>1); }
;
VETOR_MIN2 : '[' numero ',' numero ']'
;
当我在非终端 PONTO 中打印 printf 时,我只得到这个:[
但我应该得到这样的结果:[20, 10] 这里缺少什么?请帮忙。 谢谢你的时间。
规则的语义值是在该规则的操作 运行 之后驻留在 $$
中的值。如果规则没有任何操作(如 VECTOR_MIN2
的情况),则默认操作为 $$ = ;
(除非没有 </code> 或类型不匹配,其中如果没有默认操作)。</p>
<p>如果您希望 <code>VECTOR_MIN2
产生不同的值,您需要添加一个操作并为 $$
分配不同的值。