Posted on 2008-03-26 09:40
山泉弯延 阅读(1173)
评论(1) 编辑 收藏 引用
#include <stdio.h>
#include <ctype.h>
int lookahead;
void error()
{
printf("synatax error\n");
exit(1);
}
void match(int t)
{
if(lookahead==t)
lookahead=getchar();
else
error();
}
void term()
{
if(isdigit(lookahead))
{
putchar(lookahead);
match(lookahead);
}
else error();
}
void exptr()
{
term();
while(1)
{
if(lookahead=='+')
{
match('+');term();putchar('+');
}
else if(lookahead=='-')
{
match('-');term();putchar('-');
}
else break;
}
}
int main(int argc, char *argv[])
{
lookahead=getchar();
exptr();
putchar('\n');
system("PAUSE");
return 0;
}