Question: Write java code for expression evaluation and syntax using the STACK operation and display appropriate error message. Your program should display appropriate error message if
Write java code for expression evaluation and syntax using the STACK operation and display appropriate error message. Your program should display appropriate error message if input expression has wrong.
Pseudo Code Example:
int howMany=5; String[] myStatement= new String[howMany]; char[] myStack= new char[40]; int stackTop; // Main method myStatement[0]="( 1 + 3) * { 2 - 1 )";
...
myStatement[4]="( 1 + 3) * ((2 - 1 )"; for (int i=0;i stackTop=-1; for (int j=0;j char c= myStatement[i].charAt(j); if (c=='{' || c=='(') { myPush(c); } if (c=='}') { char popedChar=myPop(); // check correct or not } if (c==')') { char popedChar=myPop(); // check correct or not } }
static void printErrorMessage(int position, int errNo){
// this method can use ^ symbol to point which position is wrong
// for example
// expect output
//( 1 + 3} * ( 2 - 1 ) // ------^ error: ')' expected
// ( 1 + 3 ) * { 2 - 1 )
// ---------------^ error: ' ( ' expected
for (int i=0; i
System.out.print(" ");
}
System.out.print("^ ");
System.out.println(errMsg[errNo]);
}
static void errorMessages(){
errMsg[0]="( expected";
errMsg[1]=") expected";
errMsg[2]="{ expected";
errMsg[3]="} expected";
}
public static void myPush(char c){ // push operation } public static char myPop(){ // pop operation return c; }
// expected output
( 1 + 3) * { 2 - 1 ) ^ error: '}' expected
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
