Пример #1
0
func (p *parser) parseImportSpec(n *parse.Node) *ast.ImportSpec {
	spec := ast.ImportSpec{}
	if n.Child(0).Is(importPath) {
		spec.Path = p.parseBasicLit(n.Child(0))
	} else {
		name := n.Child(0)
		switch name.Rule() {
		case identifier:
			spec.Name = p.parseIdent(name)
		case term("."):
			spec.Name = &ast.Ident{
				NamePos: token.Pos(name.Pos()),
				Name:    ".",
			}
		}
		spec.Path = p.parseBasicLit(n.Child(1))

	}
	return &spec
}