2011-02-03 4 views
0
stmt : expr {printf("%d\n",$1);} 
     ; 

expr : expr '+' expr {$$ = $1 + $3;} 
    | expr '-' expr {$$ = $1 - $3;} 
    | INTEGER  {$$ = $1;} 
    ; 

Quand le stmt non terminal est-il exécuté par bison. Quand il voit quel personnage?Problème de calculatrice de bison

+1

Je ne comprends pas la question. Qu'est-ce que 'stmp'? –

+0

oups c'était une faute de frappe. maintenant je l'ai réparé – user574183

Répondre

1

En supposant, ce sont toutes les règles de votre entrée bison, le symbole non-terminal stmt obtient « exécuté » dès EOF est atteinte (i.e. .: pas d'entrée plus loin et la dernière expr a été réduite).

Cependant, il existe des conflits dans votre grammaire.