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