示例#1
0
文件: funcs.go 项目: gsrpc/gslang
func _AttachAnnotation(node ast.Node, annotations ...*ast.Annotation) {

	anns := Annotations(node)

	anns = append(anns, annotations...)

	node.SetExtra(ExtraAnnotation, anns)
}
示例#2
0
文件: funcs.go 项目: gsrpc/gslang
// Annotations .
func _RemoveAnnotation(node ast.Node, annotation *ast.Annotation) {

	anns := Annotations(node)

	var newanns []*ast.Annotation

	for _, ann := range anns {
		if ann == annotation {
			continue
		}
		newanns = append(newanns, ann)
	}
	node.SetExtra(ExtraAnnotation, anns)
}
示例#3
0
文件: funcs.go 项目: gsrpc/gslang
func _AttachComment(node ast.Node, comment *ast.Comment) bool {
	nodeStart, nodeEnd := Pos(node)

	commentStart, commentEnd := Pos(comment)

	if nodeStart.Lines == commentEnd.Lines ||
		nodeStart.Lines == commentEnd.Lines+1 ||
		nodeEnd.Lines == commentStart.Lines {

		node.SetExtra(ExtraComment, comment)

		return true
	}

	return false
}
示例#4
0
文件: funcs.go 项目: gsrpc/gslang
func _setNodePos(node ast.Node, start lexer.Position, end lexer.Position) {
	node.SetExtra(ExtraStartPos, start)
	node.SetExtra(ExtraEndPos, end)
}