2013-09-11 3 views
0

Возможно ли, чтобы одно и то же семантическое действие выполнялось для нескольких правил в бизоне?Действия с использованием семантики в bison

т.е. у меня есть что-то вроде

exp: NUM   { $$ = $1; } 
    | exp exp  { $$ = $1; } 

Можно ли уйти с написанием только одно действие?

+0

Не тогда, когда это минимально, что - нет. Если действия немного больше, вы можете сделать это с тщательно обработанными вызовами функций, но назначение в $$ обычно заканчивается в действии ('{$$ = semantics_xyz ($ 1, $ 2, $ 3);}'). И можно утверждать, что, поскольку «$$ = $ 1» является значением по умолчанию, возможно, вам не нужно ничего в этом конкретном контексте, но вы делаете это в общем контексте. –

ответ

2

Что-то подобное может работать:

list: exp { $$ = $1; } 
exp : NUM 
    | exp exp 
Смежные вопросы