This commit is contained in:
develar
2012-09-30 15:50:23 +04:00
parent 96a52fe2d0
commit 9b6d08a6a9
47 changed files with 168 additions and 163 deletions
+10
View File
@@ -0,0 +1,10 @@
<component name="ArtifactManager">
<artifact build-on-make="true" name="dart-ast-src">
<output-path>$PROJECT_DIR$/out/artifacts</output-path>
<root id="root">
<element id="archive" name="dart-ast-src.jar">
<element id="dir-copy" path="$PROJECT_DIR$/src" />
</element>
</root>
</artifact>
</component>
@@ -200,7 +200,7 @@ public class JsToStringGenerationVisitor extends JsVisitor {
private TIntArrayList statementStarts = new TIntArrayList();
public JsToStringGenerationVisitor(TextOutput out) {
this.p = out;
p = out;
}
@Override
@@ -1252,10 +1252,7 @@ public class JsToStringGenerationVisitor extends JsVisitor {
* If the binary operation has a higher precedence than op, then it won't
* be parenthesized, so check the first argument of the binary operation.
*/
if (binary.getOperator().getPrecedence() > op.getPrecedence()) {
return spaceCalc(op, binary.getArg1());
}
return false;
return binary.getOperator().getPrecedence() > op.getPrecedence() && spaceCalc(op, binary.getArg1());
}
if (arg instanceof JsPrefixOperation) {
JsOperator op2 = ((JsPrefixOperation) arg).getOperator();
@@ -53,12 +53,12 @@ public final class JsArrayAccess extends JsExpressionImpl {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
arrayExpr = v.accept(arrayExpr);
indexExpr = v.accept(indexExpr);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -57,11 +57,11 @@ public final class JsArrayLiteral extends JsLiteral {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
v.acceptWithInsertRemove(expressions);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -81,8 +81,8 @@ public final class JsBinaryOperation extends JsExpressionImpl {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
if (op.isAssignment()) {
arg1 = v.acceptLvalue(arg1);
} else {
@@ -90,7 +90,7 @@ public final class JsBinaryOperation extends JsExpressionImpl {
}
arg2 = v.accept(arg2);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -44,11 +44,11 @@ public class JsBlock extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
v.acceptWithInsertRemove(statements);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -22,12 +22,12 @@ public final class JsBreak extends JsContinue {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
if (label != null) {
v.accept(label);
}
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
}
@@ -24,12 +24,12 @@ public final class JsCase extends JsSwitchMember {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
caseExpr = v.accept(caseExpr);
v.acceptWithInsertRemove(statements);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -48,15 +48,15 @@ public class JsCatch extends JsNodeImpl implements HasCondition {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
param = v.accept(param);
if (condition != null) {
condition = v.accept(condition);
}
body = v.accept(body);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -61,13 +61,13 @@ public final class JsConditional extends JsExpressionImpl {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
testExpr = v.accept(testExpr);
thenExpr = v.accept(thenExpr);
elseExpr = v.accept(elseExpr);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -26,13 +26,13 @@ public class JsContinue extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
if (label != null) {
v.accept(label);
}
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -13,9 +13,9 @@ public class JsDebugger extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
@Override
@@ -14,11 +14,11 @@ public final class JsDefault extends JsSwitchMember {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
v.acceptWithInsertRemove(statements);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -21,11 +21,11 @@ public class JsDoWhile extends JsWhile {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
condition = v.accept(condition);
body = v.accept(body);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
}
@@ -0,0 +1,13 @@
package com.google.dart.compiler.backend.js.ast;
public class JsDocComment extends JsNodeImpl implements JsStatement {
@Override
public NodeKind getKind() {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public void traverse(JsVisitor visitor, JsContext context) {
//To change body of implemented methods use File | Settings | File Templates.
}
}
@@ -13,9 +13,9 @@ public class JsEmpty extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
@Override
@@ -18,11 +18,11 @@ public final class JsExprStmt extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
expr = v.accept(expr);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -63,8 +63,8 @@ public class JsFor extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
assert (!(initExpr != null && initVars != null));
if (initExpr != null) {
@@ -83,7 +83,7 @@ public class JsFor extends JsNodeImpl implements JsStatement {
}
body = v.accept(body);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -53,15 +53,15 @@ public class JsForIn extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
if (iterExpr != null) {
iterExpr = v.acceptLvalue(iterExpr);
}
objExpr = v.accept(objExpr);
body = v.accept(body);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -91,12 +91,12 @@ public final class JsFunction extends JsLiteral implements HasName {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
v.acceptWithInsertRemove(params);
body = v.accept(body);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -38,28 +38,28 @@ public final class JsIf extends JsNodeImpl implements JsStatement {
return thenStatement;
}
public void setElseStatement(JsStatement elseStmt) {
this.elseStatement = elseStmt;
public void setElseStatement(JsStatement elseStatement) {
this.elseStatement = elseStatement;
}
public void setIfExpression(JsExpression ifExpr) {
this.ifExpression = ifExpr;
public void setIfExpression(JsExpression ifExpression) {
this.ifExpression = ifExpression;
}
public void setThenStatement(JsStatement thenStmt) {
this.thenStatement = thenStmt;
public void setThenStatement(JsStatement thenStatement) {
this.thenStatement = thenStatement;
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
ifExpression = v.accept(ifExpression);
thenStatement = v.accept(thenStatement);
if (elseStatement != null) {
elseStatement = v.accept(elseStatement);
}
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -68,12 +68,12 @@ public final class JsInvocation extends JsExpressionImpl implements HasArguments
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
qualifier = v.accept(qualifier);
v.acceptList(arguments);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -38,11 +38,11 @@ public class JsLabel extends JsNodeImpl implements JsStatement, HasName {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
stmt = v.accept(stmt);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -43,9 +43,9 @@ public abstract class JsLiteral extends JsExpressionImpl implements CanBooleanEv
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
@Override
@@ -87,9 +87,9 @@ public abstract class JsLiteral extends JsExpressionImpl implements CanBooleanEv
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
@Override
@@ -109,13 +109,13 @@ public final class JsNameRef extends JsExpressionImpl implements CanBooleanEval,
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
if (qualifier != null) {
qualifier = v.accept(qualifier);
}
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -51,12 +51,12 @@ public final class JsNew extends JsExpressionImpl implements HasArguments {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
ctorExpression = v.accept(ctorExpression);
v.acceptList(arguments);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -1,6 +1,5 @@
package com.google.dart.compiler.backend.js.ast;
import com.google.dart.compiler.backend.js.JsSourceGenerationVisitor;
import com.google.dart.compiler.backend.js.JsToStringGenerationVisitor;
import com.google.dart.compiler.common.AbstractNode;
import com.google.dart.compiler.common.SourceInfo;
@@ -10,20 +9,10 @@ abstract class JsNodeImpl extends AbstractNode implements JsNode {
protected JsNodeImpl() {
}
// Causes source generation to delegate to the one visitor
public final String toSource() {
TextOutputImpl out = new TextOutputImpl();
JsSourceGenerationVisitor v = new JsSourceGenerationVisitor(out);
v.accept(this);
return out.toString();
}
// Causes source generation to delegate to the one visitor
@Override
public String toString() {
TextOutputImpl out = new TextOutputImpl();
JsToStringGenerationVisitor v = new JsToStringGenerationVisitor(out);
v.accept(this);
new JsToStringGenerationVisitor(out).accept(this);
return out.toString();
}
@@ -34,7 +23,7 @@ abstract class JsNodeImpl extends AbstractNode implements JsNode {
public JsNode setSourceRef(SourceInfo info) {
if (info != null) {
this.setSourceInfo(info);
setSourceInfo(info);
}
return this;
}
@@ -29,9 +29,9 @@ public final class JsNullLiteral extends JsValueLiteral {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
@Override
@@ -38,9 +38,9 @@ public abstract class JsNumberLiteral extends JsValueLiteral {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
public String toString() {
@@ -66,9 +66,9 @@ public abstract class JsNumberLiteral extends JsValueLiteral {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
public String toString() {
@@ -69,11 +69,11 @@ public final class JsObjectLiteral extends JsLiteral {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
v.acceptWithInsertRemove(properties);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -27,9 +27,9 @@ public final class JsParameter extends JsNodeImpl implements HasName {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
@Override
@@ -28,11 +28,11 @@ public final class JsPostfixOperation extends JsUnaryOperation {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
super.traverse(v, ctx);
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
super.traverse(v, context);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -55,11 +55,11 @@ public final class JsPrefixOperation extends JsUnaryOperation implements CanBool
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
super.traverse(v, ctx);
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
super.traverse(v, context);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -112,13 +112,13 @@ public final class JsProgram extends JsNodeImpl {
}
@Override
public void traverse(JsVisitor v, @Nullable JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, @Nullable JsContext context) {
if (v.visit(this, context)) {
for (JsProgramFragment fragment : fragments) {
v.accept(fragment);
}
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -20,11 +20,11 @@ public class JsProgramFragment extends JsNodeImpl {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
v.accept(globalBlock);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -39,12 +39,12 @@ public class JsPropertyInitializer extends JsNodeImpl {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
labelExpr = v.accept(labelExpr);
valueExpr = v.accept(valueExpr);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -52,9 +52,9 @@ public final class JsRegExp extends JsValueLiteral {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
@Override
@@ -27,13 +27,13 @@ public final class JsReturn extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
if (expr != null) {
expr = v.accept(expr);
}
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -41,9 +41,9 @@ public final class JsStringLiteral extends JsValueLiteral {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
v.visit(this, ctx);
v.endVisit(this, ctx);
public void traverse(JsVisitor v, JsContext context) {
v.visit(this, context);
v.endVisit(this, context);
}
@Override
@@ -32,12 +32,12 @@ public class JsSwitch extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
expr = v.accept(expr);
v.acceptWithInsertRemove(cases);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -23,11 +23,11 @@ public class JsThrow extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
expression = v.accept(expression);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -48,15 +48,15 @@ public class JsTry extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
tryBlock = v.accept(tryBlock);
v.acceptWithInsertRemove(catches);
if (finallyBlock != null) {
finallyBlock = v.accept(finallyBlock);
}
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -41,7 +41,7 @@ public abstract class JsUnaryOperation extends JsExpressionImpl {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
public void traverse(JsVisitor v, JsContext context) {
if (op.isModifying()) {
// The delete operator is practically like an assignment of undefined, so
// for practical purposes we're treating it as an lvalue.
@@ -82,13 +82,13 @@ public class JsVars extends JsNodeImpl implements JsStatement, Iterable<JsVars.J
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
if (initExpression != null) {
initExpression = v.accept(initExpression);
}
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -123,11 +123,11 @@ public class JsVars extends JsNodeImpl implements JsStatement, Iterable<JsVars.J
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
v.acceptWithInsertRemove(vars);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override
@@ -12,7 +12,7 @@ public interface JsVisitable {
* Causes this object to have the visitor visit itself and its children.
*
* @param visitor the visitor that should traverse this node
* @param ctx the context of an existing traversal
* @param context the context of an existing traversal
*/
void traverse(JsVisitor visitor, JsContext ctx);
void traverse(JsVisitor visitor, JsContext context);
}
@@ -90,7 +90,7 @@ public class JsVisitor {
};
public final <T extends JsVisitable> T accept(T node) {
return this.doAccept(node);
return doAccept(node);
}
public final <T extends JsVisitable> void acceptList(List<T> collection) {
@@ -105,10 +105,6 @@ public class JsVisitor {
doAcceptWithInsertRemove(collection);
}
public boolean didChange() {
throw new UnsupportedOperationException();
}
public void endVisit(JsArrayAccess x, JsContext ctx) {
}
@@ -36,12 +36,12 @@ public class JsWhile extends JsNodeImpl implements JsStatement {
}
@Override
public void traverse(JsVisitor v, JsContext ctx) {
if (v.visit(this, ctx)) {
public void traverse(JsVisitor v, JsContext context) {
if (v.visit(this, context)) {
condition = v.accept(condition);
body = v.accept(body);
}
v.endVisit(this, ctx);
v.endVisit(this, context);
}
@Override