// normal
Obj{
name = full.pkg.name
pkg = full.pkg
}
// builtin
Obj{
name = name
pkg = "builtin"
}
// ffi
Obj{
name = LANG.pkg.name
pkg = full.pkg
lang = lang
}
// normal
table.pkg_scopes[full.pkg]Obj{
name = name
}
// builtin
table.pkg_scopes["builtin"]Obj{
name = name
}
// ffi
table.pkg_scopes["FFI"]Obj{
name = pkg.name
lang = lang // this might not even be needed
}
Continuously updated
Tracker for details regarding the current and future form of Bait's scope system.
Changes will be split up into multiple PRs.
Status Quo
Hierarchy:
Storage:
table.Table.global_scope &ast.Scope
Contents high-level:
ScopeObject value variants:
Goal
Hierarchy:
Storage:
table.Table.pkg_scopes map[string]&ast.Scope
Contents high-level:
ScopeObject value variants: