mark vararg expressions

This commit is contained in:
James Roseborough
2010-06-25 15:18:33 +00:00
parent bce5c5a5b7
commit 9fc310dc16
2 changed files with 19 additions and 5 deletions

View File

@@ -89,6 +89,10 @@ public class Exp {
return false; return false;
} }
public boolean isvarargexp() {
return false;
}
abstract public static class PrimaryExp extends Exp { abstract public static class PrimaryExp extends Exp {
public boolean isvarexp() { public boolean isvarexp() {
return false; return false;
@@ -168,6 +172,10 @@ public class Exp {
public void accept(Visitor visitor) { public void accept(Visitor visitor) {
visitor.visit(this); visitor.visit(this);
} }
public boolean isvarargexp() {
return true;
}
} }
public static class MethodCall extends FuncCall { public static class MethodCall extends FuncCall {
@@ -202,7 +210,11 @@ public class Exp {
public void accept(Visitor visitor) { public void accept(Visitor visitor) {
visitor.visit(this); visitor.visit(this);
} }
public boolean isvarargexp() {
return true;
}
} }
public static class UnopExp extends Exp { public static class UnopExp extends Exp {
@@ -233,13 +245,14 @@ public class Exp {
} }
public static class AnonFuncDef extends Exp { public static class AnonFuncDef extends Exp {
public final FuncBody funcbody; public final FuncBody body;
public AnonFuncDef(FuncBody funcbody) { public AnonFuncDef(FuncBody funcbody) {
this.funcbody = funcbody; this.body = funcbody;
} }
public void accept(Visitor visitor) { public void accept(Visitor visitor) {
visitor.visit(this); visitor.visit(this);
} }
} }
} }

View File

@@ -48,8 +48,9 @@ abstract public class Visitor {
public void visit(Stat.NumericFor stat) { public void visit(Stat.NumericFor stat) {
visit(stat.name); visit(stat.name);
stat.initial.accept(this); stat.initial.accept(this);
stat.step.accept(this);
stat.limit.accept(this); stat.limit.accept(this);
if ( stat.step != null )
stat.step.accept(this);
stat.block.accept(this); stat.block.accept(this);
} }
public void visit(Stat.RepeatUntil stat) { public void visit(Stat.RepeatUntil stat) {
@@ -78,7 +79,7 @@ abstract public class Visitor {
field.rhs.accept(this); field.rhs.accept(this);
} }
public void visit(Exp.AnonFuncDef exp) { public void visit(Exp.AnonFuncDef exp) {
exp.funcbody.accept(this); exp.body.accept(this);
} }
public void visit(Exp.BinopExp exp) { public void visit(Exp.BinopExp exp) {
exp.lhs.accept(this); exp.lhs.accept(this);