牛骨文教育服务平台(让学习变的简单)

6.5 改变起始符号

默认情况下,在yacc中的第一条规则是起始语法规则(顶层规则)。可以用start标识来改变这种行为:

start = "foo"

def p_bar(p):
    "bar : A B"

# This is the starting rule due to the start specifier above
def p_foo(p):
    "foo : bar X"
...

用start标识有助于在调试的时候将大型的语法规则分成小部分来分析。也可把start符号作为yacc的参数:

yacc.yacc(start="foo")