diff options
author | matozoid <hexagonaal@gmail.com> | 2016-07-17 21:08:18 +0200 |
---|---|---|
committer | matozoid <hexagonaal@gmail.com> | 2016-07-17 21:15:20 +0200 |
commit | a23c6aa3b83caf62c769a21bb8eaa86da8b48d28 (patch) | |
tree | 9688607eabfd1f9dbc509d9203c3508368ddc528 /javaparser-core | |
parent | 5aad14b858ddfff1a6c02a11003fe4cbb265350d (diff) | |
parent | b8272790e09d730b3ce4d9c27d48da3abb776c00 (diff) | |
download | platform_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.xml | 4 | ||||
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/JavaParser.java | 5 | ||||
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java | 11 | ||||
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java | 9 | ||||
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/ast/internal/Utils.java | 34 | ||||
-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.jj | 46 |
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()] |