private void resolveNames(BlockNode<BaseNode> tree) {
        for(BaseNode node : tree) {
            switch(node.nodeType()) {
                case STRUCT_DECL:
                {
                    StructDeclNode struct = (StructDeclNode)node;
                    
                    StructType realType = 
                            new StructType(struct.name, true);
                    
                    context.global().add(
                        new StructSymbol(
                            struct.name, 
                            realType,
                            new SymbolTable()
                        ));
                    
                    break;
                }
                case FUNCTION_DECL:
                {
                    FunctionDeclNode f = (FunctionDeclNode)node;
                    context.global().add(
                        new FunctionSymbol(
                            f.name, 
                            context.global(),
                            new SymbolTable()
                        ));
                    break;
                }
                default:
                {
                    break;
                }
            }
        }
    }