Merge pull request #371 from matozoid/issue_370_compile_with_java_8

Set javaparser-core to compile with Java 8
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/TreeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java
similarity index 64%
rename from javaparser-core/src/main/java/com/github/javaparser/ast/TreeVisitor.java
rename to javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java
index f3b2672..94eac0b 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/TreeVisitor.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java
@@ -18,18 +18,27 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  */
- 
-package com.github.javaparser.ast;
 
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.Node;
+
+/**
+ * Iterate over all the nodes in (a part of) the AST.
+ */
 public abstract class TreeVisitor {
 
-    public void visitDepthFirst(Node node){
-        process(node);
-        for (Node child : node.getChildrenNodes()){
-            visitDepthFirst(child);
-        }
-    }
+	/**
+	 * https://en.wikipedia.org/wiki/Depth-first_search
+	 *
+	 * @param node the start node, and the first one that is passed to process(node).
+	 */
+	public void visitDepthFirst(Node node) {
+		process(node);
+		for (Node child : node.getChildrenNodes()) {
+			visitDepthFirst(child);
+		}
+	}
 
-    public abstract void process(Node node);
-
+	public abstract void process(Node node);
 }
diff --git a/javaparser-core/src/main/javacc/java_1_8.jj b/javaparser-core/src/main/javacc/java_1_8.jj
index d9653c7..3bf9af8 100644
--- a/javaparser-core/src/main/javacc/java_1_8.jj
+++ b/javaparser-core/src/main/javacc/java_1_8.jj
@@ -2426,34 +2426,32 @@
   (
 	  ret = Literal()
 	|
-	  "this" { ret = new ThisExpr(range(token.beginLine, token.beginColumn, token.endLine, token.endColumn), null); }
+	  <THIS> { ret = new ThisExpr(range(token.beginLine, token.beginColumn, token.endLine, token.endColumn), null); }
 	|
-	  "super" { ret = new SuperExpr(range(token.beginLine, token.beginColumn, token.endLine, token.endColumn), null); }
+	  <SUPER> { ret = new SuperExpr(range(token.beginLine, token.beginColumn, token.endLine, token.endColumn), null); }
 	  (
-	     "."
-	  [ typeArgs = TypeArguments() {typeArgs.remove(0);} ]
-	  name = SimpleName()
-	  [ args = Arguments() {hasArgs=true;} ]
-	  	{
-			if (hasArgs) {
-	  			MethodCallExpr m = new MethodCallExpr(range(ret.getBegin().line, ret.getBegin().column, token.endLine, token.endColumn), ret, typeArgs, null, args);
-				m.setNameExpr(name);
-				ret = m;
-			} else {
-	  			FieldAccessExpr f = new FieldAccessExpr(range(ret.getBegin().line, ret.getBegin().column, token.endLine, token.endColumn), ret, null, null);
-				f.setFieldExpr(name);
-				ret = f;
+		    "."
+		    [ typeArgs = TypeArguments() {typeArgs.remove(0);} ]
+		    name = SimpleName()
+		    [ args = Arguments() {hasArgs=true;} ]
+		    {
+				if (hasArgs) {
+		            MethodCallExpr m = new MethodCallExpr(range(ret.getBegin().line, ret.getBegin().column, token.endLine, token.endColumn), ret, typeArgs, null, args);
+					m.setNameExpr(name);
+					ret = m;
+				} else {
+		            FieldAccessExpr f = new FieldAccessExpr(range(ret.getBegin().line, ret.getBegin().column, token.endLine, token.endColumn), ret, null, null);
+					f.setFieldExpr(name);
+					ret = f;
+				}
+		    }
+		|
+			"::" [typeArgs = TypeParameters() { typeArgs.remove(0); }] (<IDENTIFIER> | "new")
+			{
+			  ret = new MethodReferenceExpr(range(ret.getBegin(), pos(token.endLine, token.endColumn)), ret, typeArgs, token.image);
 			}
-	  	}
-	 |
-		"::" [typeArgs = TypeParameters() { typeArgs.remove(0); }] (<IDENTIFIER> | "new")
-		{
-		  ret = new MethodReferenceExpr(range(ret.getBegin().line, ret.getBegin().column, token.endLine, token.endColumn), ret, typeArgs, token.image);
-		}
-     |   args = Arguments() {new MethodCallExpr(range(ret.getBegin().line, ret.getBegin().column, token.endLine, token.endColumn), ret, typeArgs, null, args);}
 	  )
 	|
-
 	  "(" {line=token.beginLine; column=token.beginColumn;}
 	  	[
 	  	( LOOKAHEAD(FormalParameter()) p = FormalParameter() { isLambda = true;} [args = FormalLambdaParameters()]