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
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started