static StringReader
   getinput(String filename) throws IOException
   {
-    StringBuilder buf = new StringBuilder();
+    // Yes, there are better alternatives to StringBuffer.  But we
+    // don't really care about performances here, while portability
+    // to older Java matters.
+    StringBuffer buf = new StringBuffer();
     FileReader file = new FileReader(filename);
     int c;
-    while ((c=file.read()) > 0)
+    while (0 < (c = file.read()))
       buf.append((char)c);
     file.close();
     return new StringReader(buf.toString());
 ;
 ])
 
+
+
+## ------------------------------------- ##
+## Calc parser with api.push-pull both.  ##
+## ------------------------------------- ##
+
+
 # Test that the states transitioned by the push parser are the
 # same as for the pull parser.  This test is assumed to work
 # if it produces the same partial trace of stack states as is
 ]])
 
 AT_BISON_CHECK([PUSHPULLFLAG [-o Calc.java Calc.y]])
+
 AT_JAVA_COMPILE([[Calc.java]])
-#Verify that this is a push parser.
+# Verify that this is a push parser.
 AT_CHECK_JAVA_GREP([[Calc.java]],
                    [[.*public void push_parse_initialize().*]])
 # Capture stderr output for comparison purposes.
 AT_BISON_OPTION_POPDEFS
 AT_CLEANUP
 
+
+
+## ---------------------------------------------------------------- ##
+## Calc parser with %locations %code lexer and api.push-pull both.  ##
+## ---------------------------------------------------------------- ##
+
+
 # This test looks for location reporting by looking
 # at the lexer output with locations enabled.
 # It defines a lexer that reports location info.