public void testStrings() {
    System.out.println();
    String[] testStrings = 
      { "\"\"", "\"hi\"", "\"HI\"", "\"1\"", "\"\n\"", "\"\\n\"", "\"\nhi\n\"", "\"\\\"\"", "\"\t\""};
    String[] testsThatShouldFail = { "", "\"", "00\"", "\"pp", "asdf", "asdf\"sdf\"" };
    java.io.Reader reader = null;
    try {
      for (int j = 0; j < 2; j++) {
        if (j==0) {
          System.out.println("!!!!!!!!!!!!!!!!! These tests should succeed. !!!!!!!!!!!!!!!!!");
        } else {
          System.out.println("!!!!!!!!!!!!!!!!! These tests should fail. !!!!!!!!!!!!!!!!!");
          testStrings = testsThatShouldFail;
        }
        for (int i = 0; i < testStrings.length; i++) {
          try {
            String curTest = testStrings[i];
            System.out.println("Input: '" + curTest + "'.");
            reader = new java.io.StringReader(curTest);
            parser.ReInit(reader);
            Object result = parser.string(true);
            if (result == null) {
              System.out.println("Output: '" + result + "'.");
            } else {
              System.out.println("Output: '" + DefaultCycObject.cyclify(result) + 
                "' of type: " + result.getClass() + ".");
            }
            if (j == 0) {
              Assert.assertNotNull(result);
              Assert.assertTrue(result instanceof String);
            } else {
              Assert.fail();
            }
          } catch (AssertionFailedError afe) {
            afe.printStackTrace(System.out);
            throw afe;
          } catch (Throwable e) {
            if (j == 0) {
              e.printStackTrace(System.out);
              Assert.assertNotNull(null);
            } else {
              System.out.println("Output: ");
              e.printStackTrace(System.out);
            }
          } finally {
            System.out.println();
          }
        }
      }
      
    } catch (Exception e) {
      e.printStackTrace();
    }
  }