Rewrote main function, added some command-line arguments
Added Comment constructor
Lexer now correctly tracks line numbers + some general cleanup