tc_package.mx raw

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