public void VisitPathExpression(PathExpression pathExpr)
        {
            // Side effect: After exiting this method, the symbol_table field will be set to
            // the type table corresponding to the most descendant type the path represents.
            if(pathExpr.Items.Count == 1){
                pathExpr.AsIdentifier.AcceptWalker(this);
            }else{
                while(symbol_table.Parent != null)
                    symbol_table = symbol_table.Parent;

                foreach(var ident in pathExpr.Items){
                    ident.AcceptWalker(this);
                    symbol_table = symbol_table.GetTypeTable(ident.Name);
                }
            }
        }