Conventions syntaxiques

Les règles de grammaires qui sont données dans le corps de ce manuel sont simplifiées (dans un but didactique) par rapport à la grammaire officielle du langage. Cependant, le lecteur trouvera à l'annexe D la grammaire sous une forme exhaustive et conforme à la norme ANSI. La typographie des règles suit les conventions suivantes :
  1. les éléments terminaux du langage seront écrits dans une fonte à largeur constante, comme ceci : while.

  2. les éléments non terminaux du langage seront écrits en italique, comme ceci :
    instruction.

  3. les règles de grammaires seront écrites de la manière suivante :
    $\bullet$
    les parties gauches de règles seront seules sur leur ligne, cadrées à gauche et suivies du signe deux points (:).
    $\bullet$
    les différentes parties droites possibles seront introduites par le signe $\Rightarrow$ et indentées sur la droite.

    Exemple :

    instruction :
    $\Rightarrow$ if ( expression ) instruction$_1$
    $\Rightarrow$ if ( expression ) instruction$_1$ else instruction$_2$

    Ceci signifie qu'il y a deux manières possibles de dériver le non-terminal instruction. La première règle indique qu'on peut le dériver en :
    if ( expression ) instruction$_1$
    la deuxième règle indique qu'on peut aussi le dériver en :
    if ( expression ) instruction$_1$ else instruction$_2$

    $\bullet$
    une partie droite de règle pourra être écrite sur plusieurs lignes. Ceci permettra de réfléter une manière possible de mettre en page le fragment de programme C correspondant, de façon à obtenir une bonne lisibilité.

    Sans en changer la signification, l'exemple précédent aurait pu être écrit :

    instruction :
    $\Rightarrow$ if ( expression )
    instruction$_1$
    $\Rightarrow$ if ( expression )
    instruction$_1$
    else instruction$_2$

    $\bullet$
    les éléments optionnels d'une règle seront indiqués en mettant le mot « option » (en italique et dans une fonte plus petite) à droite de l'élément concerné.

    Par exemple, la règle :

    déclarateur-init :
    $\Rightarrow$ déclarateur initialisateur$_{option}$

    indique que déclarateur-init peut se dériver soit en :

    déclarateur initialisateur

    soit en :

    déclarateur

Matthieu Moy 2017-02-08