e.currentToken.sourceStart,
                   e.currentToken.sourceEnd,
                   errorLevel,
-                  "Line " + e.currentToken.beginLine+", "+e.currentToken.sourceStart+":"+e.currentToken.sourceEnd);
+                  "Line " + e.currentToken.beginLine+", "+e.currentToken.sourceStart+':'+e.currentToken.sourceEnd);
       } else {
         setMarker(fileToParse,
                   errorMessage,
                   errorStart,
                   errorEnd,
                   errorLevel,
-                  "Line " + e.currentToken.beginLine+", "+errorStart+":"+errorEnd);
+                  "Line " + e.currentToken.beginLine+", "+errorStart+':'+errorEnd);
         errorStart = -1;
         errorEnd = -1;
       }
           currentPosition > SimpleCharStream.currentBuffer.length()) {
       return;
     }
-    final char[] chars = SimpleCharStream.currentBuffer.substring(htmlStart,
-                                                                  currentPosition).toCharArray();
-    pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
+    final String html = SimpleCharStream.currentBuffer.substring(htmlStart, currentPosition);
+    pushOnAstNodes(new HTMLCode(html, htmlStart,currentPosition));
   }
 
   /** Create a new task. */
 |
   token = <IDENTIFIER>
   {
-   outlineInfo.addVariable("$" + token.image);
+   outlineInfo.addVariable('$' + token.image);
    return new Variable(token.image,token.sourceStart,token.sourceEnd);
   }
 }
 {
   [token = <BIT_AND>] variableDeclaration = VariableDeclaratorNoSuffix()
   {
-    outlineInfo.addVariable("$"+variableDeclaration.name());
+    outlineInfo.addVariable('$'+variableDeclaration.name());
     if (token != null) {
       variableDeclaration.setReference(true);
     }
     expr = UnaryExpression()
   } catch (ParseException e) {
     if (errorMessage != null) throw e;
-    errorMessage = "unexpected token '"+e.currentToken.next.image+"'";
+    errorMessage = "unexpected token '"+e.currentToken.next.image+'\'';
     errorLevel   = ERROR;
     errorStart = PHPParser.token.sourceStart;
     errorEnd   = PHPParser.token.sourceEnd;
   }
   try {
     statement = Statement()
-    {pos = rparenToken.sourceEnd+1;}
+    {pos = statement.sourceEnd+1;}
   } catch (ParseException e) {
     if (errorMessage != null) throw e;
     errorMessage = "statement expected";
     errorEnd   = e.currentToken.sourceEnd;
     processParseExceptionDebug(e);
   }
-  {return new ForeachStatement(expression,
+  {
+   return new ForeachStatement(expression,
                                variable,
                                statement,
                                foreachToken.sourceStart,
-                               statement.sourceEnd);}
+                               pos);}
 
 }