示例#1
0
bool FunctionMergePass::visitProg2(BinaryExpr * from, BinaryExpr * to) {
  in->setFirst(visitExpr(in->first()));
  in->setSecond(visitExpr(in->second()));
  return in;
}
示例#2
0
bool FunctionMergePass::visitLocalProcedure(LocalProcedureExpr * from, LocalProcedureExpr * to) {
  return visitExpr(from->arg(), to->arg());
}
示例#3
0
bool FunctionMergePass::visitLocalReturn(ReturnExpr * from, ReturnExpr * to) {
  return visitExpr(from->arg(), to->arg());
}
示例#4
0
bool FunctionMergePass::visitFor(ForExpr * from, ForExpr * to) {
  return visitExpr(from->init(), to->init()) &&
      visitExpr(from->test(), to->test()) &&
      visitExpr(from->incr(), to->incr()) &&
      visitExpr(from->body(), to->body());
}
示例#5
0
bool FunctionMergePass::visitThrow(ThrowExpr * from, ThrowExpr * to) {
  return visitExpr(from->arg(), to->arg());
}
示例#6
0
bool FunctionMergePass::visitBoundMethod(BoundMethodExpr * from, BoundMethodExpr * to) {
  in->setSelfArg(visitExpr(in->selfArg()));
  return in;
}
示例#7
0
bool FunctionMergePass::visitIf(IfExpr * from, IfExpr * to) {
  return visitExpr(from->test(), to->test()) &&
      visitExpr(from->thenVal(), to->thenVal()) &&
      visitExpr(from->elseVal(), to->elseVal());
}
示例#8
0
bool FunctionMergePass::visitPtrDeref(UnaryExpr * from, UnaryExpr * to) {
  in->setArg(visitExpr(in->arg()));
  return in;
}
示例#9
0
bool FunctionMergePass::visitComplement(UnaryExpr * from, UnaryExpr * to) {
  return visitExpr(from->arg(), to->arg());
}
示例#10
0
bool FunctionMergePass::visitCompare(CompareExpr * from, CompareExpr * to) {
  return visitExpr(from->first(), to->first()) && visitExpr(from->second(), to->second());
}
示例#11
0
bool FunctionMergePass::visitInstanceOf(InstanceOfExpr * from, InstanceOfExpr * to) {
  in->setValue(visitExpr(in->value()));
  return in;
}
示例#12
0
bool FunctionMergePass::visitIndirectCall(CallExpr * from, CallExpr * to) {
  visitExpr(in->function());
  //in->setSelfArg(visitExpr(in->selfArg()));
  visitExprArgs(in);
  return in;
}
示例#13
0
bool FunctionMergePass::visitAssign(AssignmentExpr * from, AssignmentExpr * to) {
  return visitExpr(from->fromExpr(), to->fromExpr()) && visitExpr(from->toExpr(), to->toExpr());
}
示例#14
0
bool FunctionMergePass::visitElementRef(BinaryExpr * from, BinaryExpr * to) {
  return visitExpr(to->first(), from->first()) && visitExpr(to->second(), from->second());
}
示例#15
0
bool FunctionMergePass::visitSharedValue(SharedValueExpr * from, SharedValueExpr * to) {
  in->setArg(visitExpr(in->arg()));
  return in;
}
示例#16
0
bool FunctionMergePass::visitProg2(BinaryExpr * from, BinaryExpr * to) {
  return visitExpr(from->first(), to->first()) &&
         visitExpr(from->second(), to->second());
}
示例#17
0
 void visitBinaryOp(BinaryOp *Op) {
   visitExpr(Op->getLHS());
   visitExpr(Op->getRHS());
 }
示例#18
0
void CompilerPass::expr(AST *&ast_)
{
    fodder(ast_->openFodder);
    visitExpr(ast_);
}