import java.util.Scanner;

/**
 * Simple class that can check a string for matching parentheses.
 *   @author Dave Reed
 *   @version 9/2/12
 */
public class ParenChecker {
  
  /**
   * Determines if the string has matching parentheses.
   * @param expr the string to be checked
   * @return true if all parentheses in expr match
   */
  public static boolean check(String expr) {
    int parenCount = 0;

    for (int i = 0; i < expr.length(); i++) {
      char ch = expr.charAt(i);
      if (ch == '(') {
        parenCount++;
      }
      else if (ch == ')') {
        if (parenCount == 0) {
          return false;
        }
        else {
          parenCount--;
        }
      }
    }  
	   
    return parenCount == 0;
  }
  
  //////////////////////////////////////////////////////
  
  public static void main(String[] args) {
      Scanner input = new Scanner(System.in);
      
      System.out.println("Enter an expression: ");
      String expr = input.nextLine();
      while (!expr.equals("")) {
          if (ParenChecker.check(expr)) {
              System.out.println("OK");
          }
          else {
              System.out.println("BAD");
          }
          
          System.out.println("Enter another (or return to quit): ");
          expr = input.nextLine();
      }
  }
}
