Module org.kink_lang.kink
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
Itree
s.-
Method Summary
Modifier and TypeMethodDescriptionvisit
(ArgsPassingItree itree) Visists an args passing itree.visit
(ArgVecItree argVec) Visits a context arg vec itree.visit
(AssignmentItree assignment) Visits an assignment itree.visit
(BiArithmeticItree itree) Visits a bi arithmetic operation.visit
(BindingItree binding) Visits a context binding itree.visit
(BranchItree itree) Visits an itree of branch without an else block on the tail context.visit
(BranchWithElseItree itree) Visits an itree of branch with an else block on the tail context.visit
(DerefItree deref) Visits a deref itree.visit
(FastFunItree fun) Visits an indexable fun itree.Visits an itree of preloaded if on the tail context.visit
(LderefItree lderef) Visits a lderef itree.visit
(LetRecItree itree) Visits an itree of letrec.visit
(LstoreItree lstore) Visits a lstore itree.visit
(McallItree mcall) Visits a mcall itree.Visits a nada itree.visit
(NestedArgsPassingItree itree) Visists a nested args passing itree.visit
(NestedVecAssignmentItree assignment) Visits an assignment itree in the form[:Foo [:X :Y]] <- xxx
.visit
(NoTraitNewValItree itree) Visits an itree ofnew_val('X' x 'Y' y)
.Visits a num itree.visit
(OptRestVecAssignmentItree assignment) Visits an assignment itree in the form[:A :B :C.opt :D.opt :R.rest] <- xxx
.visit
(OptVecAssignmentItree assignment) Visits an assignment itree in the form[:A :B :C.opt :D.opt] <- xxx
.Visits a context recv itree.visit
(RestVecAssignmentItree assignment) Visits an assignment itree in the form[:R.rest] <- xxx
.Visits a seq itree.visit
(SlowFunItree fun) Visits a fun itree.visit
(StoreItree store) Visists a store itree.Visits a str itree.visit
(SymcallItree scall) Visits a symcall itree.visit
(TraitNewValItree itree) Visits an itree ofnew_val(... Trait 'X' x 'Y' y)
.visit
(VarrefItree varref) Visits a varref itree.visit
(VarrefVecAssignmentItree assignment) Visits an assignment itree in the form[:Foo X:Bar] <- Rhs
.Visits a vec itree.
-
Method Details
-
visit
Visits a context binding itree.- Parameters:
binding
- the context binding itree.- Returns:
- the result.
-
visit
Visits a context recv itree.- Parameters:
recv
- the context recv itree.- Returns:
- the result.
-
visit
Visits a context arg vec itree.- Parameters:
argVec
- the context arg vec itree.- Returns:
- the result.
-
visit
Visits a num itree.- Parameters:
num
- the num itree.- Returns:
- the result.
-
visit
Visits a str itree.- Parameters:
str
- the str itree.- Returns:
- the result.
-
visit
Visits a nada itree.- Parameters:
nada
- the nada itree.- Returns:
- the result.
-
visit
Visits a seq itree.- Parameters:
seq
- the seq itree.- Returns:
- the result.
-
visit
Visits a fun itree.- Parameters:
fun
- the fun itree.- Returns:
- the result.
-
visit
Visits an indexable fun itree.- Parameters:
fun
- the indexable fun itree.- Returns:
- the result.
-
visit
Visits a vec itree.- Parameters:
vec
- the vec itree.- Returns:
- the result.
-
visit
Visits a deref itree.- Parameters:
deref
- the deref itree.- Returns:
- the result.
-
visit
Visits a lderef itree.- Parameters:
lderef
- the lderef itree.- Returns:
- the result.
-
visit
Visits a varref itree.- Parameters:
varref
- the varref itree.- Returns:
- the result.
-
visit
Visits an itree of letrec.- Parameters:
itree
- the letrec itree.- Returns:
- the result.
-
visit
Visits an assignment itree.- Parameters:
assignment
- the assignment itree.- Returns:
- the result.
-
visit
Visits an assignment itree in the form[:A :B :C.opt :D.opt] <- xxx
.- Parameters:
assignment
- the itree.- Returns:
- the result.
-
visit
Visits an assignment itree in the form[:A :B :C.opt :D.opt :R.rest] <- xxx
.- Parameters:
assignment
- the itree.- Returns:
- the result.
-
visit
Visits an assignment itree in the form[:R.rest] <- xxx
.- Parameters:
assignment
- the itree.- Returns:
- the result.
-
visit
Visits an assignment itree in the form[:Foo [:X :Y]] <- xxx
.- Parameters:
assignment
- the itree.- Returns:
- the result.
-
visit
Visits an assignment itree in the form[:Foo X:Bar] <- Rhs
.- Parameters:
assignment
- the itree.- Returns:
- the result.
-
visit
Visits a lstore itree.- Parameters:
lstore
- the lstore itree.- Returns:
- the result.
-
visit
Visists a store itree.- Parameters:
store
- the store itree.- Returns:
- the result.
-
visit
Visists an args passing itree.- Parameters:
itree
- the arg passing itree.- Returns:
- the result.
-
visit
Visists a nested args passing itree.- Parameters:
itree
- the nested args passing itree.- Returns:
- the result.
-
visit
Visits an itree ofnew_val(... Trait 'X' x 'Y' y)
.- Parameters:
itree
- the new_val itree.- Returns:
- the result.
-
visit
Visits a bi arithmetic operation.- Parameters:
itree
- the arithmetic operation itree.- Returns:
- the result.
-
visit
Visits an itree ofnew_val('X' x 'Y' y)
.- Parameters:
itree
- the new_val itree.- Returns:
- the result.
-
visit
Visits an itree of preloaded if on the tail context.- Parameters:
itree
- the preloaded if itree.- Returns:
- the result.
-
visit
Visits an itree of branch without an else block on the tail context.- Parameters:
itree
- the branch itree.- Returns:
- the result.
-
visit
Visits an itree of branch with an else block on the tail context.- Parameters:
itree
- the branch itree.- Returns:
- the result.
-
visit
Visits a mcall itree.- Parameters:
mcall
- the mcall itree.- Returns:
- the result.
-
visit
Visits a symcall itree.- Parameters:
scall
- the symcall itree.- Returns:
- the result.
-