Académique Documents
Professionnel Documents
Culture Documents
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()
{
S();
//((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()
{
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()
{
S();
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()
{
lexp();
//(identifier(number(identifier)number))