various lexer stuff for compiler