Oui. En supposant que vous voulez dire celui qui utilise également la notation post-scriptum, cela signifie que vous souhaitez définir vos expressions quelque chose comme:
expression: operand operand operator
Plutôt que la notation infixe plus commune:
expression: operand operator operand
mais qui peut difficilement être qualifié d'un grand traiter. Si vous voulez dire autre chose par "Postcript-like", vous devrez probablement clarifier avant de pouvoir donner une meilleure réponse.
Edit: Permettre à un nombre arbitraire d'opérandes et les opérateurs est assez facile:
operand_list:
| operand_list operand
;
operator_list:
| operator_list operator
;
expression: operand_list operator_list
;
En l'état actuel, cela ne tente pas de faire respecter le bon nombre d'opérateurs étant présents pour tout opérande particulier - vous devrez ajouter ces contrôles séparément. Dans un cas typique, une notation postscript est exécutée sur une machine à pile, de sorte que la plupart de ces vérifications deviennent de simples vérifications de pile.
Je dois ajouter que même si vous certainement pouvez écrire des parseurs quelque chose comme yacc, langues en utilisant la notation postscript nécessitent généralement cette analyse syntaxique minimale que vous les nourrissez souvent directement à une sorte d'interprète de machine virtuelle qui les exécute tout à fait directement, avec une analyse minimale (la plupart du temps, l'analyse revient à lancer une erreur si vous essayez d'utiliser un nom qui n'a pas été défini).
Que voulez-vous dire par 'postscript'? Parlez-vous du langage post-scriptum ou faites-vous référence à quelque chose d'un peu plus abstrait? –
Avec le langage de programmation Postscript, je veux dire un langage de programmation orienté pile comme PostScript. – kiamlaluno
Quand vous dites 'Postscript' je pense au langage de l'imprimante http://en.wikipedia.org/wiki/PostScript. Mais ce que je pense que vous voulez dire "Ce que j'appellerais une langue polonaise inversée basée sur la pile": http://en.wikipedia.org/wiki/Stack-oriented_programming_language Mais ne prenez pas cela pour signifier "Je pense que vous êtes la description est mal "c'est juste la façon dont je pense et que je veux clarifier (pour moi-même). –