Analyseur syntaxique en c

0/5 (6 avis)

Vue 24 779 fois - Téléchargée 3 727 fois

Description

Voila il s'agit d'un analyseur syntaxique d'une petite calculatrice. Le prog analyse la syntaxe de l'opération entrée par l'utilisateur et renvoie le résultat si elle est correcte.Il faut mettre un '#' a la fin de l'opération avant de taper sur entrée. Exemple: 2+(63*452)#
A+,
Haldwin.

Source / Exemple :


Ci-dessous le code du main de l'analyseur:

void main()
{
	strcpy(str[0].tab,"sqr");
	strcpy(str[1].tab,"sqrt");
	

	gets(commande);
	carlu = commande[0];

	if(commande[0] == 0)
	{
		printf("Chaine vide.\n");
		erreur();
	}
	else
	{
		index=1;
		sommet = -1;
		expression();
		if(prochain != C_FINI)
		{
			printf("Chaine ayant une erreur.\n");
			/*erreur();*/
		}
		else
		{
			printf("Analyse syntaxique correcte.\n");
			printf("Le resultat est: %d\n",depiler(tab, &sommet));
		}
	}
	getch();
}

Téléchargé le code si vous souhaitez avoir le code entier.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_miss fafa Messages postés 46 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 25 février 2009
25 déc. 2008 à 15:35
slt ,
pas grave pour un debutant faut le courager comme meme
n'est ce pas les gars !!
nhoracio Messages postés 3 Date d'inscription vendredi 26 mai 2006 Statut Membre Dernière intervention 14 novembre 2007
14 nov. 2007 à 20:43
Ben moi, j'ai essayé ton code et j'ai pas pu en tirer grand chose. En plus, tes commentaires ne sont pas des meilleurs. Félicitation quand même pour avoir essayé
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
31 juil. 2003 à 17:01
Salut Haldwin,
voici quelque petit conseil pour ameliorer ta source :
* avoir des nombres a virgules
* gestion des erreurs relatives a la division par 0
* gestion du moins unaire
* gestion du sqrt CORRECT, avec detection de nombre negatif (pour l'instant sqrt(6-10)# donne 16 ?!?!

bon la crois que c'est deja beaucoup !
Si tu veux voir un exemple :
http://www.cppfrance.com/article.aspx?Val=2213

A+
Haldwin Messages postés 77 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 16 juin 2004
25 déc. 2002 à 23:25
Rien à ajouter après des commentaires si constructifs!!!
bramme Messages postés 1 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 30 novembre 2002
30 nov. 2002 à 22:30
Tout a fait d'accord!
On dirait un melange de Turbo Pascal et de basic!
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.