6.5 改变起始符号

最后更新于:2022-04-01 01:10:27

默认情况下,在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') ~~~
';