Converted to use ASTs rather than DataTypes for types because we can't
fully resolve data types in this pass. We'll have to do it later.
Changed all Token enums to TokenKind for consistency.
Formatted.