Ejemplo n.º 1
0
 public ClassScope(ClassInfo classInfo)
     : base(classInfo)
 {
 }
Ejemplo n.º 2
0
 public InstanceInfo(ClassInfo classInfo)
 {
     _classInfo = classInfo;
 }
Ejemplo n.º 3
0
        // TODO: What about names being redefined?
        // remember classes/functions as they start new scopes
        public override bool Walk(ClassDefinition node)
        {
            if (node.Body == null || node.Name == null) {
                return false;
            }

            var queue = _entry.ProjectState.Queue;

            var scopes = new InterpreterScope[_scopes.Count + 1];
            _scopes.CopyTo(scopes);

            _analysisStack.Push(_curUnit);
            var unit = _curUnit = new AnalysisUnit(node, scopes, _curUnit);
            var klass = new ClassInfo(unit, _entry);
            var classScope = klass.Scope;

            var scope = _scopes.Peek();
            scope.SetVariable(node, unit, node.Name, klass.SelfSet);

            _scopes.Push(classScope);
            scopes[scopes.Length - 1] = classScope;

            // TODO: Add parameters for __new__/__init__
            PushPositionScope(node, classScope);

            return true;
        }
Ejemplo n.º 4
0
 public InstanceInfo(ClassInfo classInfo)
 {
     _classInfo = classInfo;
 }