UpsPrs.NonTerminalSyntaxique

Définition

/****************************************************************/
Type NonTerminalSyntaxique Defaut Final TailleSegment 16
/* Objet : Definition d'un non terminal syntaxique. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive : /*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Prive : /*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public : Prive : /*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public : Prive : Fin Type

Le type NonTerminalSyntaxique modélise un non-terminal syntaxique. Un non-terminal peut être vu comme le résultat de l'application d'une règle syntaxique. Nous disons qu'il se dérive en une ou plusieurs règles syntaxiques qui sont disjointes. Un non-terminal peut être récurrent, telle celui définissant une expression.

Le type NonTerminalSyntaxique possède un constructeur explicite dont les paramètres A et L représentent respectivement l'analyseur syntaxique de rattachement et le libellé du non-terminal.

Le paramètre EP doit avoir pour valeur Vrai si le non-terminal est paramétré.

Le paramètre EO doit avoir pour valeur Vrai si le non-terminal est optionnel.

La fonction de rappel optionnelle ActionSiOptionnelle se déclenche si le non-terminal optionnel n'est pas dérivé dans une règle. Voici ses paramètres :

Opérateurs

Le type NonTerminalSyntaxique possède les opérateurs standards suivants :

Exemple

Pour un exemple complet, merci de se référer à Analyse et interprétation du contenu d'un flux.

Variable
/******/


/****************************************************************/
Fonction ActionSiOptionnel(ValeurLexicale : Nul Ou Objet, ValeurSemantique : Nul Ou Objet, NumeroLigne : Entier, NumeroColonne : Entier) Retourner ActionEtapeReponse
/* Objet : Traite une action suite a une etape optionnelle. */
/****************************************************************/
Debut
...
Fin Fonction

Principal
/*******/
Debut
...
MonNonTerminalSyntaxiqueA=NonTerminalSyntaxique(MonAnalyseurSyntaxique, _T("MonNonTerminalSyntaxique"), ActionSiOptionnel);
...
Si MonNonTerminalSyntaxiqueA==MonNonTerminalSyntaxiqueB Alors
/* Egalité entre deux non-terminaux syntaxiques. */ Fin Si
Si MonNonTerminalSyntaxiqueA!=MonNonTerminalSyntaxiqueB Alors
/* Inégalité entre deux non-terminaux syntaxiques. */ Fin Si

Voir aussi

AnalyseurSyntaxique pour connaître la définition d'un analyseur syntaxique. RegleSyntaxique pour connaître la définition d'une règle syntaxique.

Traduction

---------