Пример #1
0
        protected override void VisitPrototypeDefinition(PrototypeDefinitionNode prototypeDefinitionNode)
        {
            string          prototypeName   = prototypeDefinitionNode.NameNode.Value;
            PrototypeSymbol prototypeSymbol = new PrototypeSymbol(prototypeName, prototypeDefinitionNode);

            AddSymbol(prototypeSymbol);
            Visit(prototypeDefinitionNode.BodyNodes);
        }
Пример #2
0
        protected override void VisitPrototypeDefinition(PrototypeDefinitionNode node)
        {
            PrototypeSymbol symbol = (PrototypeSymbol)node.Symbol;

            if (symbol?.InheritanceParentSymbol?.Node != null)
            {
                Visit(symbol.InheritanceParentSymbol.Node);
            }

            _initializedAttributesPaths            = new HashSet <string>();
            _initializedLocalsPaths                = new HashSet <string>();
            _node2InitializedAttributesPaths[node] = _initializedAttributesPaths;

            _currentBlockSymbol = symbol;
            base.VisitPrototypeDefinition(node);
            _currentBlockSymbol = null;
        }