You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
932 B
Go
40 lines
932 B
Go
2 years ago
|
package ast
|
||
|
|
||
|
import "github.com/zeromicro/go-zero/tools/goctl/pkg/parser/api/token"
|
||
|
|
||
|
// KVExpr is a key value expression.
|
||
|
type KVExpr struct {
|
||
|
// Key is the key of the key value expression.
|
||
|
Key *TokenNode
|
||
|
// Value is the value of the key value expression.
|
||
|
Value *TokenNode
|
||
|
}
|
||
|
|
||
|
func (i *KVExpr) HasHeadCommentGroup() bool {
|
||
|
return i.Key.HasHeadCommentGroup()
|
||
|
}
|
||
|
|
||
|
func (i *KVExpr) HasLeadingCommentGroup() bool {
|
||
|
return i.Value.HasLeadingCommentGroup()
|
||
|
}
|
||
|
|
||
|
func (i *KVExpr) CommentGroup() (head, leading CommentGroup) {
|
||
|
return i.Key.HeadCommentGroup, i.Value.LeadingCommentGroup
|
||
|
}
|
||
|
|
||
|
func (i *KVExpr) Format(prefix ...string) string {
|
||
|
w := NewBufferWriter()
|
||
|
w.Write(withNode(i.Key, i.Value), withPrefix(prefix...), withInfix(Indent), withRawText())
|
||
|
return w.String()
|
||
|
}
|
||
|
|
||
|
func (i *KVExpr) End() token.Position {
|
||
|
return i.Value.End()
|
||
|
}
|
||
|
|
||
|
func (i *KVExpr) Pos() token.Position {
|
||
|
return i.Key.Pos()
|
||
|
}
|
||
|
|
||
|
func (i *KVExpr) exprNode() {}
|