mark vararg expressions
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user