Interface ItreeVisitor<T>

Type Parameters:
T - the result type of visitor methods.
All Known Implementing Classes:
ArgsPassingOptimizer, AssignmentOptimizer, BaseOptimizer, BiArithmeticInliner, BranchInliner, BranchWithElseInliner, ContentPropagator, DeadLstoreEliminator, DeparenOptimizer, EliminateUnusedOptimizer, FlattenSeqOptimizer, FunMcallToSymcallOptimizer, IfInliner, LderefOptimizer, LetRecChainer, LetRecProducer, LetRecReducer, LetSymcallInliner, LstoreOptimizer, MinusConstantFolder, NestedArgsPassingOptimizer, NestedVecAssignmentInliner, OptRestVecAssignmentOptimizer, OptVecAssignmentOptimizer, ParenContOptimizer, RestVecAssignmentOptimizer, SimpleNewValInliner, SkeltonItreeVisitor, SsafyOptimizer, StoreOptimizer, TemplateArgsPassingOptimizer, TraitNewValOptimizer, UnnestArgsPassingOptimizer, VarrefVecAssignmentInliner, VarrefVecAssignmentToLocalOptimizer

public interface ItreeVisitor<T>
A visitor of Itrees.
  • Method Details

    • visit

      T visit(BindingItree binding)
      Visits a context binding itree.
      Parameters:
      binding - the context binding itree.
      Returns:
      the result.
    • visit

      T visit(RecvItree recv)
      Visits a context recv itree.
      Parameters:
      recv - the context recv itree.
      Returns:
      the result.
    • visit

      T visit(ArgVecItree argVec)
      Visits a context arg vec itree.
      Parameters:
      argVec - the context arg vec itree.
      Returns:
      the result.
    • visit

      T visit(NumItree num)
      Visits a num itree.
      Parameters:
      num - the num itree.
      Returns:
      the result.
    • visit

      T visit(StrItree str)
      Visits a str itree.
      Parameters:
      str - the str itree.
      Returns:
      the result.
    • visit

      T visit(NadaItree nada)
      Visits a nada itree.
      Parameters:
      nada - the nada itree.
      Returns:
      the result.
    • visit

      T visit(SeqItree seq)
      Visits a seq itree.
      Parameters:
      seq - the seq itree.
      Returns:
      the result.
    • visit

      T visit(SlowFunItree fun)
      Visits a fun itree.
      Parameters:
      fun - the fun itree.
      Returns:
      the result.
    • visit

      T visit(FastFunItree fun)
      Visits an indexable fun itree.
      Parameters:
      fun - the indexable fun itree.
      Returns:
      the result.
    • visit

      T visit(VecItree vec)
      Visits a vec itree.
      Parameters:
      vec - the vec itree.
      Returns:
      the result.
    • visit

      T visit(DerefItree deref)
      Visits a deref itree.
      Parameters:
      deref - the deref itree.
      Returns:
      the result.
    • visit

      T visit(LderefItree lderef)
      Visits a lderef itree.
      Parameters:
      lderef - the lderef itree.
      Returns:
      the result.
    • visit

      T visit(VarrefItree varref)
      Visits a varref itree.
      Parameters:
      varref - the varref itree.
      Returns:
      the result.
    • visit

      T visit(LetRecItree itree)
      Visits an itree of letrec.
      Parameters:
      itree - the letrec itree.
      Returns:
      the result.
    • visit

      T visit(AssignmentItree assignment)
      Visits an assignment itree.
      Parameters:
      assignment - the assignment itree.
      Returns:
      the result.
    • visit

      T visit(OptVecAssignmentItree assignment)
      Visits an assignment itree in the form [:A :B :C.opt :D.opt] <- xxx.
      Parameters:
      assignment - the itree.
      Returns:
      the result.
    • visit

      T visit(OptRestVecAssignmentItree assignment)
      Visits an assignment itree in the form [:A :B :C.opt :D.opt :R.rest] <- xxx.
      Parameters:
      assignment - the itree.
      Returns:
      the result.
    • visit

      T visit(RestVecAssignmentItree assignment)
      Visits an assignment itree in the form [:R.rest] <- xxx.
      Parameters:
      assignment - the itree.
      Returns:
      the result.
    • visit

      T visit(NestedVecAssignmentItree assignment)
      Visits an assignment itree in the form [:Foo [:X :Y]] <- xxx.
      Parameters:
      assignment - the itree.
      Returns:
      the result.
    • visit

      T visit(VarrefVecAssignmentItree assignment)
      Visits an assignment itree in the form [:Foo X:Bar] <- Rhs.
      Parameters:
      assignment - the itree.
      Returns:
      the result.
    • visit

      T visit(LstoreItree lstore)
      Visits a lstore itree.
      Parameters:
      lstore - the lstore itree.
      Returns:
      the result.
    • visit

      T visit(StoreItree store)
      Visists a store itree.
      Parameters:
      store - the store itree.
      Returns:
      the result.
    • visit

      T visit(ArgsPassingItree itree)
      Visists an args passing itree.
      Parameters:
      itree - the arg passing itree.
      Returns:
      the result.
    • visit

      T visit(NestedArgsPassingItree itree)
      Visists a nested args passing itree.
      Parameters:
      itree - the nested args passing itree.
      Returns:
      the result.
    • visit

      T visit(TraitNewValItree itree)
      Visits an itree of new_val(... Trait 'X' x 'Y' y).
      Parameters:
      itree - the new_val itree.
      Returns:
      the result.
    • visit

      T visit(BiArithmeticItree itree)
      Visits a bi arithmetic operation.
      Parameters:
      itree - the arithmetic operation itree.
      Returns:
      the result.
    • visit

      T visit(NoTraitNewValItree itree)
      Visits an itree of new_val('X' x 'Y' y).
      Parameters:
      itree - the new_val itree.
      Returns:
      the result.
    • visit

      T visit(IfItree itree)
      Visits an itree of preloaded if on the tail context.
      Parameters:
      itree - the preloaded if itree.
      Returns:
      the result.
    • visit

      T visit(BranchItree itree)
      Visits an itree of branch without an else block on the tail context.
      Parameters:
      itree - the branch itree.
      Returns:
      the result.
    • visit

      T visit(BranchWithElseItree itree)
      Visits an itree of branch with an else block on the tail context.
      Parameters:
      itree - the branch itree.
      Returns:
      the result.
    • visit

      T visit(McallItree mcall)
      Visits a mcall itree.
      Parameters:
      mcall - the mcall itree.
      Returns:
      the result.
    • visit

      T visit(SymcallItree scall)
      Visits a symcall itree.
      Parameters:
      scall - the symcall itree.
      Returns:
      the result.