2010-07-24 18 views
1

Je reçois un conflit aveC++ et - dans bison.Conflit aveC++ dans bison, comment écrire poste/pré?

j'ai écrit ces deux lignes pour le post et l'incrément pré

| rval PLUSPLUS 
| PLUSPLUS rval 

Je reçois un conflit. Cela n'arrive que lorsque les deux sont inclus. Je pensais qu'il pourrait être impliqué avec une syntaxe comme var +++ var2 confus avec + pre ou post +. Cependant le conflit est resté en supprimant enlever + dans ma syntaxe. Comment puis-je implémenter ++ et - pour les post et pré sans problèmes de syntaxe?

Remarque This StackExchange proposal is relevant

-Edit- sa fait un moment que je travaille sur ce point. J'ai trouvé d'autres syntaxe que je peux commenter pour ne pas faire de conflits. Je ne comprends toujours pas mais maintenant je vois que ce n'est pas seulement poste et pré.

Répondre

2

Ce sont deux règles différentes à savoir

POSTFIX_EXPRESSION := rval PLUSPLUS | rval MINUSMINUS 
PREFIX_EXPRESSION := PLUSPLUS rval | MINUSMINUS rval 

Si vous avez le livre en langage C (K & R) puis regardez à l'Annexe A, il donne la grammaire du langage C qui est un bon exemple.

+0

Où est placé PREFIX_EXPRESSION? Je les ai tous les deux dans ma règle rval. –

+0

Je vais l'accepter parce que c'est juste et l'autre conflit de code a disparu. –