I keep reading online the order of steps a compiler takes to compile a language, and it's always different from what my compiler does.
Apparently other compilers do tokenize -> ast generation -> semantic analysis, but my compiler does tokenize -> semantic analysis -> ast generation.
Am I too stubborn for my own good?