WITH SYNTAX {
ListeDeLexemes }
SYNTAX
permet d'introduire la syntaxe particulière à employer lors de l'usage de la classe.
Quand une partie de l'expression syntaxique est optionnelle, elle est écrite entre caractères crochet ouvrant [ et crochet fermant ].
Si plusieurs parties optionnelles se succèdent ou s'imbriquent, il ne doit pas y avoir d'ambiguïté possible dans l'analyse i.e. elle doit être déterministe.
-- Definition d'une classe avec quatre parametres.
MaClasse ::= CLASS
{
&MonParametreA,
-- Le parametre MonParametreA n'est pas type aussi il doit etre un type.
&MonParametreB INTEGER,
-- Le parametre MonParametreB est obligatoire.
&MonParametreC INTEGER DEFAULT 1,
-- Le parametre MonParametreC est facultatif. En ce cas, sa valeur par défaut est 1
&MonParametreD INTEGER OPTIONAL
-- Le parametre MonParametreD est falcultatif.
}
WITH SYNTAX
{
PARAMETERA &MonParametreA , PARAMETERB &MonParametreB , PARAMETERC &MonParametreC [ AND PARAMETERD &MonParametreD ]
}
MaValeur1 MaClasse ::= PARAMETERA 1 , PARAMETERB 2 , PARAMETERC 3
MaValeur2 MaClasse ::= PARAMETERA 1 , PARAMETERB 2 , PARAMETERC 3 AND PARAMETERD 4