Parse values as different AST nodes rather than just strings. This allows for better validation and will eventually make expressions possible.