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()]