Priorité des opérateurs [Compilation] - Divers - Programmation
MarshPosté le 18-12-2005 à 19:24:08
Une petite question anodine et sans importance sur un projet de compilation : la priorité de certains opérateurs d'un langage. Un prof nous a donné une grammaire un peu étrange : le '*' est plus prioritaire que le '+' (normal), mais le '<' et le '>' sont plus prioritaire que le '*'.
La conséquence : Faire "1 + 2 < 5" provoque une erreur de compilation, étant donné qu'avec cette priorité la premiere action est de faire 2 < 5, la seconde de l'additionner à 1. On est forcé de parenthésé le "1 + 2" pour que ça fonctionne.
J'ai donc envoyer un mail au prof pour lui signaler l'erreur ... sa réponse a été que ce n'est pas parce que le "bon sens commun" et que gcc ne font pas comme ça que sa grammaire n'est pas correct, et qu'aucune norme ne dit que + ou * sont prioritaire sur le > ou le <.
J'aurais donc aimé savoir si effectivement aucune norme, loi, ou je ne sais quoi, n'existe pour définir une priorité sur tous ces opérateurs.
Marsh Posté le 18-12-2005 à 19:24:08
Une petite question anodine et sans importance sur un projet de compilation : la priorité de certains opérateurs d'un langage.
Un prof nous a donné une grammaire un peu étrange : le '*' est plus prioritaire que le '+' (normal), mais le '<' et le '>' sont plus prioritaire que le '*'.
La conséquence : Faire "1 + 2 < 5" provoque une erreur de compilation, étant donné qu'avec cette priorité la premiere action est de faire 2 < 5, la seconde de l'additionner à 1. On est forcé de parenthésé le "1 + 2" pour que ça fonctionne.
J'ai donc envoyer un mail au prof pour lui signaler l'erreur ... sa réponse a été que ce n'est pas parce que le "bon sens commun" et que gcc ne font pas comme ça que sa grammaire n'est pas correct, et qu'aucune norme ne dit que + ou * sont prioritaire sur le > ou le <.
J'aurais donc aimé savoir si effectivement aucune norme, loi, ou je ne sais quoi, n'existe pour définir une priorité sur tous ces opérateurs.