Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2973)

Unified Diff: editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/SyntaxTranslator.java

Issue 17932005: New analyzer_experimental snapshot. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Disable resolver tests Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/SyntaxTranslator.java
diff --git a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/SyntaxTranslator.java b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/SyntaxTranslator.java
index b935c5d24641007c2ca9c0065af40cd4230b14c0..1b07c9c0db49dfce56741ca7268c904831f0cd54 100644
--- a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/SyntaxTranslator.java
+++ b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/SyntaxTranslator.java
@@ -150,7 +150,6 @@ import org.eclipse.jdt.core.dom.IMethodBinding;
import org.eclipse.jdt.core.dom.ITypeBinding;
import org.eclipse.jdt.core.dom.IVariableBinding;
import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.TagElement;
import org.eclipse.jdt.core.dom.Type;
import org.eclipse.jdt.core.dom.TypeDeclaration;
@@ -260,8 +259,8 @@ public class SyntaxTranslator extends org.eclipse.jdt.core.dom.ASTVisitor {
* Translates given Java AST into Dart AST.
*/
public static CompilationUnit translate(Context context,
- org.eclipse.jdt.core.dom.CompilationUnit javaUnit) {
- SyntaxTranslator translator = new SyntaxTranslator(context);
+ org.eclipse.jdt.core.dom.CompilationUnit javaUnit, String javaSource) {
+ SyntaxTranslator translator = new SyntaxTranslator(context, javaSource);
javaUnit.accept(translator);
return (CompilationUnit) translator.result;
}
@@ -396,6 +395,7 @@ public class SyntaxTranslator extends org.eclipse.jdt.core.dom.ASTVisitor {
}
private final Context context;
+ private final String javaSource;
private ASTNode result;
@@ -403,8 +403,9 @@ public class SyntaxTranslator extends org.eclipse.jdt.core.dom.ASTVisitor {
private MethodDeclaration constructorImpl;
- private SyntaxTranslator(Context context) {
+ private SyntaxTranslator(Context context, String javaSource) {
this.context = context;
+ this.javaSource = javaSource;
}
@Override
@@ -1078,21 +1079,13 @@ public class SyntaxTranslator extends org.eclipse.jdt.core.dom.ASTVisitor {
@Override
public boolean visit(org.eclipse.jdt.core.dom.Javadoc node) {
- StringBuilder buffer = new StringBuilder();
- {
- buffer.append("/**");
- for (Object javaTag : node.tags()) {
- String javaTagString = tagElementToString((TagElement) javaTag);
- String dartDocString = StringUtils.replace(javaTagString, "[", "\\[");;
- dartDocString = StringUtils.replace(dartDocString, "]", "\\]");;
- // TODO(scheglov) improve JavaDoc translation
-// String dartDocString = escapeDartDoc(javaTagString);
- dartDocString = convertJavaDoc(dartDocString);
- buffer.append(dartDocString);
- }
- buffer.append("\n */\n");
- }
- StringToken commentToken = new StringToken(TokenType.STRING, buffer.toString(), 0);
+ String javaDocString = getJavaSource(node);
+ // there is some one-off sometimes, probably bug in JDT
+ if (!javaDocString.startsWith("/**") && javaDocString.startsWith("**")) {
+ javaDocString = "/" + javaDocString;
+ }
+ String dartDocString = convertJavaDoc(javaDocString);
+ StringToken commentToken = new StringToken(TokenType.STRING, dartDocString, 0);
return done(Comment.createDocumentationComment(new Token[] {commentToken}));
}
@@ -1857,6 +1850,11 @@ public class SyntaxTranslator extends org.eclipse.jdt.core.dom.ASTVisitor {
return ref;
}
+ private String getJavaSource(org.eclipse.jdt.core.dom.ASTNode node) {
+ int offset = node.getStartPosition();
+ return javaSource.substring(offset, offset + node.getLength());
+ }
+
private boolean isNumberOrNull(Expression expression) {
if (expression instanceof IntegerLiteral || expression instanceof DoubleLiteral
|| expression instanceof NullLiteral) {
@@ -1879,27 +1877,6 @@ public class SyntaxTranslator extends org.eclipse.jdt.core.dom.ASTVisitor {
}
}
- private String tagElementToString(TagElement tag) {
- StringBuilder builder = new StringBuilder();
-
- List<?> fragments = tag.fragments();
-
- for (int i = 0; i < fragments.size(); i++) {
- Object fragment = fragments.get(i);
-
- builder.append("\n * ");
-
- if (i == 0 && tag.getTagName() != null) {
- builder.append(tag.getTagName());
- builder.append(" ");
- }
-
- builder.append(fragment.toString());
- }
-
- return builder.toString();
- }
-
/**
* Recursively translates given {@link org.eclipse.jdt.core.dom.ASTNode} to Dart {@link ASTNode}.
*

Powered by Google App Engine
This is Rietveld 408576698