我们假设我有这样的语法:
expr : expr '-' expr { $$ = $1 - $3; }
| "Function" '(' expr ',' expr ')' { $$ = ($3 - $5) * 2; }
| NUMBER { $$ = $1; };
如何使用规则
expr : expr '-' expr { $$ = $1 - $3; }
里面
expr : "Function" '(' expr ',' expr ')' { $$ = ($3 - $5) * 2; }
因为重复了$1 - $3
的实施?如果我可以使用已经实现的从规则1中减去并且只用2添加乘法会好得多。这只是基本的例子,但是我有非常大的语法,有很多重复计算。