Professional Documents
Culture Documents
Code Gen
Code Gen
Code Gen
h>
#include<conio.h>
#include<string.h>
char post[40];
char stack[40];
int top=-1;
void push(char t)
stack[++top]=t;
char pop()
return stack[top--];
int operand(char t)
if((t>='a'&&t<='z')||(t>='A'&&t<='Z'))
return 1;
else
return 0;
switch(sign)
case '+':
printf("Add%c\n",arg);
break;
case '-':
printf("Sub %c\n",arg);
break;
case '*':
printf("mul %c\n",arg);
break;
case '/':
printf("div %c\n",arg);
break;
void main()
int i,count=0;
char sign,a1,a2,a;
clrscr();
scanf("%s",post);
i=0;
while(post[i]!='\0')
if(operand(post[i]))
push(post[i]);
else if(post[i]=='+'||post[i]=='-'||post[i]=='/'||post[i]=='*')
sign=post[i];
a2=pop();
a1=pop();
if(a1!='\0'&&a2!='\0')
if(count>0)
printf("push\n");
printf("load %c\n",a1);
operation(sign,a2);
count++;
else if(a1=='\0'&&a2!='\0')
operation(sign,a2) ;
else if(a1=='\0'&&a2=='\0')
printf("pop Q\n");
operation(sign,'Q');
i++;
getch();