Fonction Optimiser(NulAbsorbant) Analyser(NonTerminalRacine : Nul Ou NonTerminalSyntaxique, ContinuerSiErreurSyntaxe : Booleen,
EnvoyerErreur : Nul Ou Procedure(MessageErreur : Caractere, NomFichierSource : Caractere, NumeroLigne : Entier, NumeroColonne : Entier)=Nul,
ArreterAnalyseAvantLaFin : Booleen=Faux) Retourner Booleen;
Si le paramètre ContinuerSiErreurSyntaxe a pour valeur Vrai alors l'analyse syntaxique continue suite à la correction d'une erreur syntaxe décidable i.e une erreur qui peut être corrigée à la volée.
La signification des paramètres de EnvoyerErreur sont les suivants :
Si le paramètre ArreterAnalyseAvantLaFin a pour valeur Vrai alors l'analyse syntaxique peut s'arrêter avant l'atteinte de la fin du fichier source.
La séquence d'usage des méthodes est la suivante :
Si cette séquence n'est pas respectée, alors l'exception est ActionSyntaxiqueImpossible est envoyée.
/****************************************************************/
Procedure EnvoyerErreur(MessageErreur : Caractere, NomFichierSource : Caractere, NumeroLigne : Entier, NumeroColonne : Entier)
/* Objet : Envoie une erreir. */
/****************************************************************/
Debut
...
Fin Procedure
Principal
/*******/
Variable
/******/
MonAnalyseurLexical : Nul Ou AnalyseurLexical;
MonAnalyseurSyntaxique : Nul Ou AnalyseurSyntaxique;
MonNonTerminal : Nul Ou NonTerminalSyntaxique;
F : Nul Ou Fichier;
Debut
...
MonAnalyseurLexical.Analyser(IFlux(F), F.NomFlux, PositionLibre, EnvoyerErreur);
...
MonAnalyseurSyntaxique.Analyser(MonAnalyseurLexical);
...
?=MonAnalyseurSyntaxique.Analyser(MonNonTerminal, Faux, EnvoyerErreur);
...
MonAnalyseurLexical.TerminerAnalyse();
...
MonAnalyseurSyntaxique.TerminerAnalyse();
...
Fin Principal
- | - | - | - | - | - | - | - | - |