PackageID returns the package part (dirname).
()
| 215 | |
| 216 | // PackageID returns the package part (dirname). |
| 217 | func (d Decl) PackageID() string { |
| 218 | p := d.DeclaredAtom.Predicate |
| 219 | if p.Symbol == "Package" { |
| 220 | for _, a := range d.Descr { |
| 221 | if a.Predicate.Symbol == DescrName { |
| 222 | c := a.Args[0].(Constant) |
| 223 | s, _ := c.StringValue() |
| 224 | return s |
| 225 | } |
| 226 | } |
| 227 | } |
| 228 | if lastDot := strings.LastIndex(p.Symbol, "."); lastDot != -1 { |
| 229 | return p.Symbol[:lastDot] |
| 230 | } |
| 231 | return "" |
| 232 | } |
| 233 | |
| 234 | // Visible returns whether the predicate should be visible to other packages. |
| 235 | func (d Decl) Visible() bool { |