aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-core
diff options
context:
space:
mode:
authormatozoid <hexagonaal@gmail.com>2016-07-17 21:08:18 +0200
committermatozoid <hexagonaal@gmail.com>2016-07-17 21:15:20 +0200
commita23c6aa3b83caf62c769a21bb8eaa86da8b48d28 (patch)
tree9688607eabfd1f9dbc509d9203c3508368ddc528 /javaparser-core
parent5aad14b858ddfff1a6c02a11003fe4cbb265350d (diff)
parentb8272790e09d730b3ce4d9c27d48da3abb776c00 (diff)
downloadplatform_external_javaparser-a23c6aa3b83caf62c769a21bb8eaa86da8b48d28.tar.gz
platform_external_javaparser-a23c6aa3b83caf62c769a21bb8eaa86da8b48d28.tar.bz2
platform_external_javaparser-a23c6aa3b83caf62c769a21bb8eaa86da8b48d28.zip
Merge branch 'master' into fix_enum_dumping
# Conflicts: # javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/DumpingSteps.java
Diffstat (limited to 'javaparser-core')
-rw-r--r--javaparser-core/pom.xml4
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/JavaParser.java5
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java11
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java9
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/internal/Utils.java34
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java (renamed from javaparser-core/src/main/java/com/github/javaparser/ast/TreeVisitor.java)29
-rw-r--r--javaparser-core/src/main/javacc/java_1_8.jj46
7 files changed, 95 insertions, 43 deletions
diff --git a/javaparser-core/pom.xml b/javaparser-core/pom.xml
index 8f17434ea..9eb3bb2fe 100644
--- a/javaparser-core/pom.xml
+++ b/javaparser-core/pom.xml
@@ -24,7 +24,7 @@
</licenses>
<properties>
- <java.version>1.6</java.version>
+ <java.version>1.8</java.version>
</properties>
<build>
@@ -60,7 +60,7 @@
<signature>
<!-- Make sure only the API of this JDK is used -->
<groupId>org.codehaus.mojo.signature</groupId>
- <artifactId>java16</artifactId>
+ <artifactId>java18</artifactId>
<version>1.0</version>
</signature>
</configuration>
diff --git a/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java b/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java
index 383b2f3f8..dff98ef27 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java
@@ -160,6 +160,11 @@ public final class JavaParser {
return parse(file, Charset.defaultCharset().name(),true);
}
+ public static CompilationUnit parse(final Reader reader)
+ throws ParseException {
+ return parse(reader, true);
+ }
+
public static CompilationUnit parse(final Reader reader, boolean considerComments)
throws ParseException {
try {
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java
index 82ca7691d..da13d89f3 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java
@@ -22,10 +22,12 @@
package com.github.javaparser.ast.expr;
import com.github.javaparser.Range;
+import com.github.javaparser.ast.internal.Utils;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.Position.pos;
+import static com.github.javaparser.Range.*;
/**
* @author Julio Vilmar Gesser
@@ -44,13 +46,20 @@ public final class CharLiteralExpr extends StringLiteralExpr {
*/
@Deprecated
public CharLiteralExpr(int beginLine, int beginColumn, int endLine, int endColumn, String value) {
- this(new Range(pos(beginLine, beginColumn), pos(endLine, endColumn)), value);
+ this(range(pos(beginLine, beginColumn), pos(endLine, endColumn)), value);
}
public CharLiteralExpr(Range range, String value) {
super(range, value);
}
+ /**
+ * Utility method that creates a new StringLiteralExpr. Escapes EOL characters.
+ */
+ public static CharLiteralExpr escape(String string) {
+ return new CharLiteralExpr(Utils.escapeEndOfLines(string));
+ }
+
@Override
public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
return v.visit(this, arg);
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java
index af4625566..56b5486b4 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java
@@ -22,12 +22,14 @@
package com.github.javaparser.ast.expr;
import com.github.javaparser.Range;
+import com.github.javaparser.ast.internal.Utils;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.Position.pos;
/**
+ * Java® Language Specification 3.10.5 String Literals
* @author Julio Vilmar Gesser
*/
public class StringLiteralExpr extends LiteralExpr {
@@ -46,6 +48,13 @@ public class StringLiteralExpr extends LiteralExpr {
}
/**
+ * Utility method that creates a new StringLiteralExpr. Escapes EOL characters.
+ */
+ public static StringLiteralExpr escape(String string) {
+ return new StringLiteralExpr(Utils.escapeEndOfLines(string));
+ }
+
+ /**
* @deprecated prefer using Range objects.
*/
@Deprecated
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/internal/Utils.java b/javaparser-core/src/main/java/com/github/javaparser/ast/internal/Utils.java
index 983afefc0..514962de9 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/internal/Utils.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/internal/Utils.java
@@ -26,14 +26,36 @@ import java.util.Collection;
import java.util.List;
/**
+ * Any kind of utility.
+ *
* @author Federico Tomassetti
*/
public class Utils {
- public static <T> List<T> ensureNotNull(List<T> list) {
- return list == null ? new ArrayList<T>() : list;
- }
+ public static <T> List<T> ensureNotNull(List<T> list) {
+ return list == null ? new ArrayList<T>() : list;
+ }
+
+ public static <E> boolean isNullOrEmpty(Collection<E> collection) {
+ return collection == null || collection.isEmpty();
+ }
- public static <E> boolean isNullOrEmpty(Collection<E> collection) {
- return collection == null || collection.isEmpty();
- }
+ /**
+ * @return string with ASCII characters 10 and 13 replaced by the text "\n" and "\r".
+ */
+ public static String escapeEndOfLines(String string) {
+ StringBuilder escapedString = new StringBuilder();
+ for (char c : string.toCharArray()) {
+ switch (c) {
+ case '\n':
+ escapedString.append("\\n");
+ break;
+ case '\r':
+ escapedString.append("\\r");
+ break;
+ default:
+ escapedString.append(c);
+ }
+ }
+ return escapedString.toString();
+ }
}
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
index f3b2672d0..94eac0b4b 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;
-public abstract class TreeVisitor {
+package com.github.javaparser.ast.visitor;
+
+import com.github.javaparser.ast.Node;
- public void visitDepthFirst(Node node){
- process(node);
- for (Node child : node.getChildrenNodes()){
- visitDepthFirst(child);
- }
- }
+/**
+ * Iterate over all the nodes in (a part of) the AST.
+ */
+public abstract class TreeVisitor {
- public abstract void process(Node node);
+ /**
+ * 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);
}
diff --git a/javaparser-core/src/main/javacc/java_1_8.jj b/javaparser-core/src/main/javacc/java_1_8.jj
index 31e68c1ea..3bf9af846 100644
--- a/javaparser-core/src/main/javacc/java_1_8.jj
+++ b/javaparser-core/src/main/javacc/java_1_8.jj
@@ -25,7 +25,7 @@ options {
JAVA_UNICODE_ESCAPE=true;
COMMON_TOKEN_ACTION=true; // Using the CommonTokenAction callback to collect tokens for later usage
//SUPPORT_CLASS_VISIBILITY_PUBLIC=false;
- JDK_VERSION = "1.6";
+ JDK_VERSION = "1.8";
TOKEN_FACTORY = "ASTParser.GTToken";
JAVA_TEMPLATE_TYPE = "modern";
}
@@ -2426,34 +2426,32 @@ Expression PrimaryPrefix():
(
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()]