A stream based lexer and rules for tokenizing JavaScript.