A language independent task engine for incremental name and type analysis