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")