this is copied from the objC  lexer, i haven't even read all of whats there