-
Notifications
You must be signed in to change notification settings - Fork 3
/
interfaces.go
89 lines (79 loc) · 3.48 KB
/
interfaces.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package asty
import "go/ast"
type IExprUnmarshaller interface {
UnmarshalBadExprNode(node *BadExprNode) *ast.BadExpr
UnmarshalIdentNode(node *IdentNode) *ast.Ident
UnmarshalEllipsisNode(node *EllipsisNode) *ast.Ellipsis
UnmarshalBasicLitNode(node *BasicLitNode) *ast.BasicLit
UnmarshalFuncLitNode(node *FuncLitNode) *ast.FuncLit
UnmarshalCompositeLitNode(node *CompositeLitNode) *ast.CompositeLit
UnmarshalParenExprNode(node *ParenExprNode) *ast.ParenExpr
UnmarshalSelectorExprNode(node *SelectorExprNode) *ast.SelectorExpr
UnmarshalIndexExprNode(node *IndexExprNode) *ast.IndexExpr
UnmarshalIndexListExprNode(node *IndexListExprNode) *ast.IndexListExpr
UnmarshalSliceExprNode(node *SliceExprNode) *ast.SliceExpr
UnmarshalTypeAssertExprNode(node *TypeAssertExprNode) *ast.TypeAssertExpr
UnmarshalCallExprNode(node *CallExprNode) *ast.CallExpr
UnmarshalStarExprNode(node *StarExprNode) *ast.StarExpr
UnmarshalUnaryExprNode(node *UnaryExprNode) *ast.UnaryExpr
UnmarshalBinaryExprNode(node *BinaryExprNode) *ast.BinaryExpr
UnmarshalKeyValueExprNode(node *KeyValueExprNode) *ast.KeyValueExpr
UnmarshalArrayTypeNode(node *ArrayTypeNode) *ast.ArrayType
UnmarshalStructTypeNode(node *StructTypeNode) *ast.StructType
UnmarshalFuncTypeNode(node *FuncTypeNode) *ast.FuncType
UnmarshalInterfaceTypeNode(node *InterfaceTypeNode) *ast.InterfaceType
UnmarshalMapTypeNode(node *MapTypeNode) *ast.MapType
UnmarshalChanTypeNode(node *ChanTypeNode) *ast.ChanType
}
type IStmtUnmarshaller interface {
UnmarshalBadStmtNode(node *BadStmtNode) *ast.BadStmt
UnmarshalDeclStmtNode(node *DeclStmtNode) *ast.DeclStmt
UnmarshalEmptyStmtNode(node *EmptyStmtNode) *ast.EmptyStmt
UnmarshalLabeledStmtNode(node *LabeledStmtNode) *ast.LabeledStmt
UnmarshalExprStmtNode(node *ExprStmtNode) *ast.ExprStmt
UnmarshalSendStmtNode(node *SendStmtNode) *ast.SendStmt
UnmarshalIncDecStmtNode(node *IncDecStmtNode) *ast.IncDecStmt
UnmarshalAssignStmtNode(node *AssignStmtNode) *ast.AssignStmt
UnmarshalGoStmtNode(node *GoStmtNode) *ast.GoStmt
UnmarshalDeferStmtNode(node *DeferStmtNode) *ast.DeferStmt
UnmarshalReturnStmtNode(node *ReturnStmtNode) *ast.ReturnStmt
UnmarshalBranchStmtNode(node *BranchStmtNode) *ast.BranchStmt
UnmarshalBlockStmtNode(node *BlockStmtNode) *ast.BlockStmt
UnmarshalIfStmtNode(node *IfStmtNode) *ast.IfStmt
UnmarshalCaseClauseNode(node *CaseClauseNode) *ast.CaseClause
UnmarshalSwitchStmtNode(node *SwitchStmtNode) *ast.SwitchStmt
UnmarshalTypeSwitchStmtNode(node *TypeSwitchStmtNode) *ast.TypeSwitchStmt
UnmarshalCommClauseNode(node *CommClauseNode) *ast.CommClause
UnmarshalSelectStmtNode(node *SelectStmtNode) *ast.SelectStmt
UnmarshalForStmtNode(node *ForStmtNode) *ast.ForStmt
UnmarshalRangeStmtNode(node *RangeStmtNode) *ast.RangeStmt
}
type ISpecUnmarshaller interface {
UnmarshalImportSpecNode(node *ImportSpecNode) *ast.ImportSpec
UnmarshalValueSpecNode(node *ValueSpecNode) *ast.ValueSpec
UnmarshalTypeSpecNode(node *TypeSpecNode) *ast.TypeSpec
}
type IDeclUnmarshaller interface {
UnmarshalBadDeclNode(node *BadDeclNode) *ast.BadDecl
UnmarshalGenDeclNode(node *GenDeclNode) *ast.GenDecl
UnmarshalFuncDeclNode(node *FuncDeclNode) *ast.FuncDecl
}
type INode interface {
GetRefId() int
}
type IDeclNode interface {
INode
UnmarshalDecl(IDeclUnmarshaller) ast.Decl
}
type IExprNode interface {
INode
UnmarshalExpr(IExprUnmarshaller) ast.Expr
}
type ISpecNode interface {
INode
UnmarshalSpec(ISpecUnmarshaller) ast.Spec
}
type IStmtNode interface {
INode
UnmarshalStmt(IStmtUnmarshaller) ast.Stmt
}