really quick question. If im in the middle of parsing code, do I eventually just make the entire program into a massive abstract syntax tree??? I think I've confused my self :/
It depends on the structure of your language. C, for example, could be compiled by individually parsing each function and generating its code, without ever having the AST for the entire translation unit at once in memory.
But, having the entire AST at once does allow certain program transformations that are otherwise basically impossible. In particular I'm talking about optimizations.