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