Programme analyseur lexical

Fermé
chouchi.21 Messages postés 7 Date d'inscription samedi 10 janvier 2015 Statut Membre Dernière intervention 17 janvier 2015 - Modifié par Whismeril le 17/01/2015 à 21:17
Uly410 Messages postés 319 Date d'inscription mercredi 14 janvier 2015 Statut Membre Dernière intervention 2 février 2015 - 19 janv. 2015 à 13:50
bonsoir
svp qui peux m'aider pour rectifier mes erreurs voila mon code source:
program tp;
var
iposcurrent,lgchaine:integer;
Result:string;
Montexte:string ;

function IsDigit:Boolean;
begin
 if (iPosCurrent<=LgChaine) and (MonTexte[iPosCurrent] in ['0'..'9']) do ;
result:=true then
result:=false;
end;
///////////////////////////////////////////////////////////////////////////////
function IsAlpha:boolean;
begin
  Result:=(iPosCurrent<=LgChaine) and (UpCase(MonTexte[iPosCurrent]) in ['A'..'Z','_']);
end;
///////////////////////////////////////////////////////////////////////////////
function IsPonctuation : boolean;
begin
  Result:=(iPosCurrent<=LgChaine) and (MonTexte[iPosCurrent] in ['(',';',':',')','[',']','.']);
end;
///////////////////////////////////////////////////////////////////////////////
 
Function IsOperateur : boolean;
begin
 
  Result:=(iPosCurrent<=LgChaine) and (UpCase(MonTexte[iPosCurrent]) in ['+','-','*','/','<','<=','>=','<>','='];


function ExtractMot : String;
begin
  Result:=copy(Line,iPosStart,IPosEnd);
end;
///////////////////////////////////////////////////////////////////////////////
function GetDigit : string;
var
  i:integer;
begin
  IPosStart :=iPosCurrent;
  while IsDigit do
     inc(iPosCurrent);
  IPosEnd :=iPosCurrent -1;  
  Result :=ExtractMot;
end;
///////////////////////////////////////////////////////////////////////////////
function GetAlpha : string;
var
  i:integer;
begin
  IPosStart :=iPosCurrent;
  while IsAlpha do
     inc(iPosCurrent);
  IPosEnd :=iPosCurrent -1;  
  Result :=ExtractMot;
end;
///////////////////////////////////////////////////////////////////////////////
function GetPonctuation := string;
 var
  i:integer;
begin
  IPosStart :=iPosCurrent;
  while IsPonctuation do
     inc(iPosCurrent);
  IPosEnd :=iPosCurrent -1;  
  Result :=ExtractMot;
end;

function GetOperateur := string;
 var
  i:integer;
begin
  IPosStart :=iPosCurrent;
  while IsOperqteur do
     inc(iPosCurrent);
  IPosEnd :=iPosCurrent -1;  
  Result :=ExtractMot;
end;


begin

 LgChaine := length(MonTexte);

 iPosCurrent := 1;

 while (iPosCurrent <=LgChaine do

 begin
      ...
      inc(iPosCurrent);
  end;

merci

EDIT: Ajout de la coloration syntaxique.

2 réponses

Salut concitoyenne

La programmation est une discipline qui impose de l'amour de la combativité, de la rigueur et qu'on s'y consacre.

Si tu es pressé et tu n'as pas de temps pour apprendre les requis de base, aucune aide ne te servirai, alors contente-toi d'autres manies faciles et divertissantes, ou paies toi un programmeur pour faire ton travail.

A votre disposition

Amicalement
0
Uly410 Messages postés 319 Date d'inscription mercredi 14 janvier 2015 Statut Membre Dernière intervention 2 février 2015 24
19 janv. 2015 à 13:50
Bonjour,

Vous devriez apprendre les bases de la programmation en Pascal et commencer par des programmes plus courts.

Cordialement,

Uly
0