#include <stdio.h>
#include <conio.h>
#include <process.h>
/*------------------------- Stack -----------------------------------------------------------*/
#define MaxSize 20
int Top=-1;
char opstk[MaxSize];
void Push (char op)
{
opstk[++Top] = op;
}
char Pop ()
{
return(opstk[Top--]);
}
int IsEmpty ()
{
return (Top==-1);
}
/*------------------------- End Of Stack ------------------------------------------------------*/
int IsOperand(char ch)
{
return ( ch>='A' && ch<='Z' || ch>='a' && ch<='z' );
}
int PrcdVal (char op)
{
switch(op)
{
case '^' : return (1);
case '*' :
case '/' : return (2);
case '+' :
case '-' : return (3);
default : printf ("Invalid Operator.\n");
return (0);
}
}
int Prcd (char op1, char op2)
{
int r1, r2;
if (op1=='(')
return(0);
if ( op2=='(' && op1!=')')
return(0);
if ( op2==')' && op1!='(')
return(1);