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 }