Vous êtes sur la page 1sur 7

#include <stdio.

h>

char ip[100];
int x=0, error=0;

void S();
void T();
void T_();

void S()
{
if(ip[x]=='a'){
x++; return;
}
if(ip[x]=='-' && ip[x+1]=='>'){
x+=2; return;
}
if(ip[x]=='('){
x++;
T();
if(ip[x]==')'){
x++; return;
}
}
error=1;
}

void T(){
S();
T_();
}

void T_(){
if(ip[x]==','){
x++;
S();
T_();
return;
}
}

void main()
{

printf("Enter input string: ");


scanf("%s",ip);

S();

if(ip[x+1]=='\0' && !error)


printf("Accepted\n");
else
printf("Error\n");

//((a,(->),a),->,a)
#include <stdio.h>

char ip[100];
int x=0, error=0;

void E();
void E_();
void T();
void T_();
void F();

void E()
{
T();
E_();
}

void E_(){
if(ip[x]=='+'){
x++;
T();
E_();
}
}

void T(){
F();
T_();
}

void T_(){
if(ip[x]=='*'){
x++;
F();
T_();
}
}

void F(){
if(ip[x]=='('){
x++;
E();
if(ip[x]==')'){
x++; return;
}
}
if(ip[x]=='i' && ip[x+1]=='d'){
x+=2; return;
}
error=1;
}

void main()
{

printf("Enter input string: ");


scanf("%s",ip);

E();
if(ip[x+1]=='\0' && !error)
printf("Accepted\n");
else
printf("Error\n");

}
//((id*id)+id+id+id*(id+id*id))
#include <stdio.h>

char ip[100];
int x=0, error=0;

void S();
void A();
void A_();
void B();

void S(){
if(ip[x]=='a'){
x++;
A();
if(ip[x]=='c'){
x++;
B();
if(ip[x]=='e'){
x++; return;
}
}
}
error=1;
}

void A(){
if(ip[x]=='b'){
x++;
A_();
return;
}
error=1;
}

void A_(){
if(ip[x]=='b'){
x++;
A_();
}
}

void B(){
if(ip[x]=='d'){
x++; return;
}
error=1;
}

void main()
{

printf("Enter input string: ");


scanf("%s",ip);

S();

if(ip[x+1]=='\0' && !error)


printf("Accepted\n");
else
printf("Error\n");
}
#include <stdio.h>
#include <string.h>

char ip[100];
int x=0, error=0;
int success=0;

void lexp();
void aterm();
void list();
void lexp_seq();
void lexp_seq_();

void lexp(){
// printf("1\n");
aterm(); if(success){success=0; return;}
list(); if(success){success=0; return;}
error=1;
}

void aterm(){
// printf("2\n");
if(ip[x]=='n'&&ip[x+1]=='u'&&ip[x+2]=='m'&&ip[x+3]=='b'&&ip[x+4]=='
e'&&ip[x+5]=='r'){
x+=6; success=1;
return;
}
if(ip[x]=='i'&&ip[x+1]=='d'&&ip[x+2]=='e'&&ip[x+3]=='n'&&ip[x+4]=='
t'&&ip[x+5]=='i'&&ip[x+6]=='f'&&ip[x+7]=='i'&&ip[x+8]=='e'&&ip[x+9]=='r')
{
x+=10; success=1;
return;
}
}

void list(){
// printf("3\n");
if(ip[x]=='('){
x++;
lexp_seq();
if(ip[x]==')'){
x++; success=1; return;
}
}
error=1;
}

void lexp_seq(){
// printf("4\n");
lexp();
lexp_seq_();
}

void lexp_seq_(){
// printf("5\n");
lexp();
if(!error)
lexp_seq_();
error=0;
}
void main()
{

printf("Enter input string: ");


scanf("%s",ip);

lexp();

if(ip[x+1]=='\0' && !error)


printf("Accepted\n");
else
printf("Error\n");

//(identifier(number(identifier)number))

Vous aimerez peut-être aussi