UpsPrs.AnalyseurLexical

Définition

/****************************************************************/
Type AnalyseurLexical Defaut Final TailleSegment 2
/* Objet : Definition d'un analyseur lexical. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive : /*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive : /*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public : Prive : /*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public : Prive : Fin Type

Le type AnalyseurLexical modélise un analyseur lexical i.e. un automate reconnaissant des éléments lexicaux.

Le type AnalyseurLexical possède un constructeur explicite dont le paramètre Nom représente le nom de l'analyseur.

Egalement :

A chaque élément lexical est associé un identifiant sous forme d'un nombre entier supérieure ou égal à 65536. Pour les éléments lexicaux standard, il existe les constantes ElementChaineApostrophes, ElementChaineChevrons, ElementChaineGuillemets, ElementCommentaireBloc, ElementCommentaireLigne ElementEntier, ElementIdentifiant et ElementReel.

Pour les mots-clés ou les familles d'identifiants telles les variables, il est nécessaire de les déclarer par l'appel à la méthode AjouterElementLexical.

A chaque élément lexical reconnu suite à l'appel à la méthode LireElementLexicalSuivant, le contexte lexical comporte :

Quant un identifiant est reconnu, l'analyseur lexical recherche parmi les paquets lexicaux sélectionnés rattachés à cet analyseur s'il existe un symbole correspondant. L'identifiant et la valeur correspondants y sont alors associés.

Le constructeur explicite du type AnalyseurLexical possède des fonctions de rappel optionnelles dont voici la signification :

Deux tâches ne peuvent utiliser simultanément un analyseur lexical. Les accès sont sérialisés par l'usage d'une synchronisation.

Opérateurs

Le type AnalyseurLexical 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 LireCommentaireIdentifiant(Identifiant : Entier, Liaison : Booleen) Retourner Nul Ou Caractere
/* Objet : Lit le commentaire de l'identifiant. */
/****************************************************************/
Debut
...
Fin Fonction

/****************************************************************/
Fonction ConserverInclusion(NumeroLigne : Entier, NomFichierSource : Caractere, ArreterAnalyse : Booleen Sortie) Retourner Booleen/* Objet : Si Vrai, on conserve l'inclusion. */
/****************************************************************/
Debut
...
Fin Fonction

/****************************************************************/
Procedure ConserverPragma(Pragma : Caractere)
/* Objet : Conserve le pragma. */
/****************************************************************/
Debut ...
Fin Procedure

Principal
/*******/
Debut
...
MonAnalyseurLexicalA=AnalyseurLexical("MonAnalyseurLexical", Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, LireCommentaireIdentifiant, ConserverInclusion, ConserverPragma);
...
Si MonAnalyseurLexicalA==MonAnalyseurLexicalB Alors
/* Egalité entre deux analyseurs lexicaux. */ Fin Si
Si MonAnalyseurLexicalA!=MonAnalyseurLexicalB Alors
/* Inégalité entre deux analyseurs lexicaux. */ Fin Si

Voir aussi

PaquetLexical pour connaître la définition d'un paquet lexical.

Traduction

---------