Question: A UML class diagram that includes all classes you wrote. Do not include predefined classes on import java.util.Stack; import java.util.Scanner; public class DelimiterCheckerApp { public

A UML class diagram that includes all classes you wrote. Do not include
predefined classes on import java.util.Stack;
import java.util.Scanner;
public class DelimiterCheckerApp {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
DelimiterChecker checker = null;
while (checker == null){
try {
System.out.print("Enter the Java source file name: ");
String fileName = scanner.nextLine();
checker = new DelimiterChecker(fileName);
} catch (FileNotFoundException e){
System.out.println("File not found. Please try again.");
}
}
Stack delimiterStack = new Stack<>();
char currentChar;
while ((currentChar = checker.getNextCharacter())!='\0'){
if (currentChar =='('|| currentChar =='{'|| currentChar =='['){
delimiterStack.push(currentChar);
} else if (currentChar ==')'|| currentChar =='}'|| currentChar ==']'){
if (delimiterStack.isEmpty()){
System.out.println("Mismatched delimiter "+ currentChar +" at "+ checker.getPosition());
return;
}
char lastDelimiter = delimiterStack.pop();
if (!isMatchingPair(lastDelimiter, currentChar)){
System.out.println("Mismatched delimiter "+ currentChar +" at "+ checker.getPosition());
return;
}
}
}
if (!delimiterStack.isEmpty()){
System.out.println("Mismatched delimiter at end of file.");
} else {
System.out.println("All delimiters matched successfully.");
}
}
private static boolean isMatchingPair(char open, char close){
return (open =='(' && close ==')')||
(open =='{' && close =='}')||
(open =='[' && close ==']');
}
}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!