Versions in this module Expand all Collapse all v0 v0.0.1 Feb 26, 2023 Changes in this version + func AnalyzeCells(scopes Scopes, free StringSet) + type BlockType uint8 + const ClassBlock + const FunctionBlock + const ModuleBlock + func (i BlockType) String() string + type Children []*SymTable + type DefUseFlags uint8 + const DefBound + const DefFree + const DefFreeClass + const DefGlobal + const DefImport + const DefLocal + const DefNonlocal + const DefParam + const DefScopeMask + const DefUse + type LookupChild map[ast.Ast]*SymTable + type OptType uint8 + type Scope uint8 + const ScopeCell + const ScopeFree + const ScopeGlobalExplicit + const ScopeGlobalImplicit + const ScopeInvalid + const ScopeLocal + func (i Scope) String() string + type Scopes map[string]Scope + type StringSet map[string]struct + func (s StringSet) Add(elem string) + func (s StringSet) Contains(k string) bool + func (s StringSet) Copy() StringSet + func (s StringSet) Discard(k string) bool + func (s StringSet) Update(other StringSet) + type SymTable struct + ChildFree bool + Children Children + Filename string + Free bool + Generator bool + Global *SymTable + Lineno int + LookupChild LookupChild + Name string + NeedsClassClosure bool + Nested bool + Parent *SymTable + Private string + ReturnsValue bool + Symbols Symbols + TmpName int + Type BlockType + Unoptimized OptType + Varargs bool + Varkeywords bool + Varnames []string + func NewSymTable(Ast ast.Ast, filename string) (st *SymTable, err error) + func (st *SymTable) AddDef(node ast.Ast, name ast.Identifier, flags DefUseFlags) + func (st *SymTable) Analyze() + func (st *SymTable) AnalyzeBlock(bound, free, global StringSet) + func (st *SymTable) AnalyzeChildBlock(bound, free, global, child_free StringSet) + func (st *SymTable) AnalyzeName(scopes Scopes, name string, symbol Symbol, ...) + func (st *SymTable) DropClassFree(free StringSet) + func (st *SymTable) Find(scopeType Scope, flag DefUseFlags) (out []string) + func (st *SymTable) FindChild(Ast ast.Ast) *SymTable + func (st *SymTable) GetScope(name string) Scope + func (st *SymTable) Parse(Ast ast.Ast) + type Symbol struct + ColOffset int + Flags DefUseFlags + Lineno int + Scope Scope + type Symbols map[string]Symbol + func (symbols Symbols) Update(scopes Scopes, bound, free StringSet, classflag bool)