예제 #1
0
 public void VisitAliasDeclaration(AliasDeclaration aliasDecl)
 {
     // An alias name is another name for an item
     // so resolve the target name first and then bind the name to the alias.
     aliasDecl.Path.AcceptWalker(this);
     aliasDecl.AliasToken.IdentifierId = aliasDecl.Path.Items.Last().IdentifierId;
 }
예제 #2
0
        public override AstNode Visit(AliasDeclaration node)
        {
            PseudoScope scope = new PseudoScope(currentScope);

            // Store it in the node.
            node.SetScope(scope);

            // Change the ast layout to reflect the new scope hierarchy.
            node.SetChildren(node.GetNext());
            node.SetNext(null);

            // Update the scope.
            PushScope(node.GetScope());

            // Visit his children.
            VisitList(node.GetChildren());

            // Restore the scope.
            PopScope();

            return(node);
        }
예제 #3
0
 public void VisitAliasDeclaration(AliasDeclaration aliasDecl)
 {
     throw new NotImplementedException();
 }
예제 #4
0
 public IType Infer(IScope scope, AliasDeclaration node)
 => default;