1. A method for analyzing code written in a loosely typed language, comprising: receiving user input entering a first portion of a script, wherein the first portion of the script is written in the loosely typed language; hierarchically determining properties of symbols in the first portion and one or more referenced files which call or are called by the first portion; determining one or more errors in the first portion based on said hierarchically determining; and displaying one or more errors based on said hierarchically determining.