github.com/nickng/gospal@v1.0.0/instr/analyser.go (about)

     1  // Package instr provides the Analyser interface for instructions.
     2  package instr
     3  
     4  import "golang.org/x/tools/go/ssa"
     5  
     6  // Analyser is an interface for Instruction analysis,
     7  // handles each defined Instruction.
     8  type Analyser interface {
     9  	VisitInstr(instr ssa.Instruction)
    10  	VisitAlloc(instr *ssa.Alloc)
    11  	VisitBinOp(instr *ssa.BinOp)
    12  	VisitCall(instr *ssa.Call)
    13  	VisitChangeInterface(instr *ssa.ChangeInterface)
    14  	VisitChangeType(instr *ssa.ChangeType)
    15  	VisitConvert(instr *ssa.Convert)
    16  	VisitDebugRef(instr *ssa.DebugRef)
    17  	VisitDefer(instr *ssa.Defer)
    18  	VisitExtract(instr *ssa.Extract)
    19  	VisitField(instr *ssa.Field)
    20  	VisitFieldAddr(instr *ssa.FieldAddr)
    21  	VisitGo(instr *ssa.Go)
    22  	VisitIf(instr *ssa.If)
    23  	VisitIndex(instr *ssa.Index)
    24  	VisitIndexAddr(instr *ssa.IndexAddr)
    25  	VisitJump(instr *ssa.Jump)
    26  	VisitLookup(instr *ssa.Lookup)
    27  	VisitMakeChan(instr *ssa.MakeChan)
    28  	VisitMakeClosure(instr *ssa.MakeClosure)
    29  	VisitMakeInterface(instr *ssa.MakeInterface)
    30  	VisitMakeMap(instr *ssa.MakeMap)
    31  	VisitMakeSlice(instr *ssa.MakeSlice)
    32  	VisitMapUpdate(instr *ssa.MapUpdate)
    33  	VisitNext(instr *ssa.Next)
    34  	VisitPanic(instr *ssa.Panic)
    35  	VisitPhi(instr *ssa.Phi)
    36  	VisitRange(instr *ssa.Range)
    37  	VisitReturn(instr *ssa.Return)
    38  	VisitRunDefers(instr *ssa.RunDefers)
    39  	VisitSelect(instr *ssa.Select)
    40  	VisitSend(instr *ssa.Send)
    41  	VisitSlice(instr *ssa.Slice)
    42  	VisitStore(instr *ssa.Store)
    43  	VisitTypeAssert(instr *ssa.TypeAssert)
    44  	VisitUnOp(instr *ssa.UnOp)
    45  }