我正在尝试为逗号分隔值列表赋予语义值。事实上,我已经定义了野牛使用的减少规则
commasv : exp
| commasv "," exp
其中exp
它是一个数字或一个变量或一个函数指针,或者还有一个带有其各自语法和语义规则的逗号标记。的类型exp
是双精度的,所以类型commasv
必须是双精度的。
问题是我想存储列表以便使用它,例如,在函数调用中。例如
h = create_object()
compute_list(h,1,cos(3.14159))
将给出某个compute_list
函数的预期结果。
作为基础野牛文件,我使用了bison 手册中的 mfcalc 示例,并将该函数替换为使用 flexyylex
生成的其他函数。现在我可以做类似的事情
pi = 3.14159
sin(pi)
ln(exp(5))
使用带有 flex的函数的修改版本,yylex
但我想在函数调用、列表创建等中使用逗号分隔的值。
感谢您的回答。