UpsPrs.RegleSyntaxique

Définition

/****************************************************************/
Type RegleSyntaxique Defaut Final TailleSegment 32
/* Objet : Definition d'une regle syntaxique. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive : /*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive : /*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public : Prive : /*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public : Prive : Fin Type

Le type RegleSyntaxique modélise une règle de syntaxique. Une règle syntaxique expanse un non-terminal en une succession d'étapes d'analyse.

Une étape peut être un élément lexical appelé encore terminal ou un non-terminal. Un non-terminal peut être vu comme le résultat de l'application d'une autre règle.

A chaque étape reconnue, le contexte syntaxique comporte :

Une règle peut être récurrente, telle celle participant à l'analyse d'une expression. Toutefois, deux règles ne peuvent être incluses l'une dans l'autre et le graphe des règles ne doit pas comporter des chemins ambigus. En ce cas, l'exception ActionSyntaxiqueImpossible est envoyée.

Le type RegleSyntaxique possède un constructeur explicite dont les paramètres A et N représentent respectivement l'analyseur syntaxique de rattachement et le non-terminal de rattachement. La fonction de rappel optionnelle ActionReprise permet de définir comment reprendre l'analyse en cas d'erreur de syntaxe. Voici ses paramètres :

La fonction de rappel ActionReprise n'est utile que pour les règles s'apparentant à des paranthèses i.e. se terminant par un terminal discriminant pour resynchroniser la lecture du fichier source sur celui-ci. Voici un exemple :

Expression : ( Expresssion )

Opérateurs

Le type RegleSyntaxique 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 ActionReprise(ValeurLexicale : Nul Ou Objet, ValeurSemantique : Nul Ou Objet, NumeroLigne : Entier, NumeroColonne : Entier) Retourner ActionEtapeReponse
/* Objet : Action executee suite a une reprise. */
/****************************************************************/
Debut
...
Fin Fonction

Principal
/*******/
Debut
...
MaRegleSyntaxiqueA=RegleSyntaxique(MonAnalyseurSyntaxique, MonNonTerminalSyntaxique, ActionReprise);
...
Si MaRegleSyntaxiqueA==MaRegleSyntaxiqueB Alors
/* Egalité entre deux règles syntaxiques. */ Fin Si
Si MaRegleSyntaxiqueA!=MaRegleSyntaxiqueB Alors
/* Inégalité entre deux règles syntaxiques. */ Fin Si

Voir aussi

AnalyseurSyntaxique pour connaître la définition d'un analyseur syntaxique. NonTerminalSyntaxique pour connaître la définition d'un non-terminal syntaxique.

Traduction

---------