我正在制作一个解析器,可以立即将令牌解析为三个地址代码。 为了在调用函数时生成正确的TAC代码,我需要在解析所有标记之前和之后调用函数“GiveTac”。在
我的问题是在解析令牌之前,我找不到调用函数的方法。在PLY的文档中有一个6.11节的嵌入式操作,它声称您可以简单地添加一个空规则,如下所示:
def p_foo(p):
"foo : A seen_A B C D"
print("Parsed a foo", p[1],p[3],p[4],p[5])
print("seen_A returned", p[2])
def p_seen_A(p):
"seen_A :"
print("Saw an A = ", p[-1]) # Access grammar symbol to left
p[0] = some_value # Assign value to seen_A
但是如果我在我的代码中尝试这个,我总是得到一个“输入语法错误!”错误。 这是我的代码:
^{pr2}$如果我删除我的p_fun_declaration_type_formal_pars_块函数中的“before”,它确实接受我的语法。在
粘贴我的代码链接: Yacc.py
目前没有回答
相关问题 更多 >
编程相关推荐