private void Bind(PythonAst unboundAst) { _currentScope = _globalScope = unboundAst; _finallyCount.Add(0); // Find all scopes and variables unboundAst.Walk(this); // Bind foreach (ScopeStatement scope in _scopes) { scope.Bind(this); } // Finish the globals unboundAst.Bind(this); // Finish Binding w/ outer most scopes first. for (int i = _scopes.Count - 1; i >= 0; i--) { _scopes[i].FinishBind(this); } // Finish the globals unboundAst.FinishBind(this); // Run flow checker foreach (ScopeStatement scope in _scopes) { FlowChecker.Check(scope); } }
public static void Check(ScopeStatement scope) { if (scope.Variables != null) { FlowChecker fc = new FlowChecker(scope); scope.Walk(fc); } }
public FlowDefiner(FlowChecker fc) { _fc = fc; }
public FlowDeleter(FlowChecker fc) { _fc = fc; }