import cucs.*; import java.util.*; // Name: Roy Pargas, Spring 2004 // Class: NestedChecker.java // Date Created: Mon Jul 12 08:15:47 EDT 2004 // Date Modified: Mon Jul 12 08:15:47 EDT 2004 // Header Comment: public class NestedChecker { public static void processOneLine(String oneLine) { Stack s = new Stack(); // will hold tokens for comparison prt(oneLine.trim()); StringTokenizer tokens = new StringTokenizer(oneLine); while (tokens.hasMoreTokens()) { String token = tokens.nextToken(); if (token.equals("(") || token.equals("[") || token.equals("{")) s.push(token); else if (token.equals(")") && !s.isEmpty() && (s.peek()).equals("(")) s.pop(); else if (token.equals("]") && !s.isEmpty() && (s.peek()).equals("[")) s.pop(); else if (token.equals("}") && !s.isEmpty() && (s.peek()).equals("{")) s.pop(); else { prtln(" incorrect"); return; } // error } // hasMoreTokens if (s.isEmpty()) prtln(" correct"); } // processOneLine // =================================================================== // helper print methods private static void prtln(String line) {System.out.println(line);} private static void prt (String line) {System.out.print(line);} // =================================================================== public static void main(String args[]) { BasicInputDataReader in = new BasicInputDataReader(args[0]); String oneLine = in.readLine(); while (!in.eof()) { if (oneLine.length() > 0) processOneLine(oneLine); oneLine = in.readLine(); } // !eof() } // end main } // end NestedChecker