package.go raw
1 package typecheck
2
3 // Package represents a compiled Moxie package.
4 type Package struct {
5 path string
6 name string
7 scope *Scope
8 imports []*Package
9 complete bool
10 }
11
12 func NewPackage(path, name string) *Package {
13 return &Package{
14 path: path,
15 name: name,
16 scope: NewScope(nil),
17 }
18 }
19
20 func (p *Package) Path() string { return p.path }
21 func (p *Package) Name() string { return p.name }
22 func (p *Package) Scope() *Scope { return p.scope }
23 func (p *Package) Complete() bool { return p.complete }
24 func (p *Package) MarkComplete() { p.complete = true }
25 func (p *Package) String() string { return "package " + p.name + " (" + p.path + ")" }
26
27 func (p *Package) Imports() []*Package { return p.imports }
28 func (p *Package) SetImports(imps []*Package) { p.imports = imps }
29