if (*p == 'x' || *p == 'X') {
p++;
- if (p == lexer->end) {
+ if (p == lexer->end || njs_char_to_hex(*p) < 0) {
goto illegal_token;
}
if (*p == 'o' || *p == 'O') {
p++;
- if (p == lexer->end) {
+ if (p == lexer->end || (u_char)(*p - '0') > 7) {
goto illegal_token;
}
if (*p == 'b' || *p == 'B') {
p++;
- if (p == lexer->end) {
+ if (p == lexer->end || (u_char)(*p - '0') > 1) {
goto illegal_token;
}
njs_str("SyntaxError: Unexpected token \"0O778\" in 1") },
{ njs_str("0O_7"),
- njs_str("SyntaxError: Unexpected token \"_7\" in 1") },
+ njs_str("SyntaxError: Unexpected token \"0O\" in 1") },
+
+ { njs_str("0O + 1"),
+ njs_str("SyntaxError: Unexpected token \"0O\" in 1") },
{ njs_str("0o7_"),
njs_str("SyntaxError: Unexpected token \"_\" in 1") },
njs_str("SyntaxError: Unexpected token \"0B12\" in 1") },
{ njs_str("0b_11"),
- njs_str("SyntaxError: Unexpected token \"_11\" in 1") },
+ njs_str("SyntaxError: Unexpected token \"0b\" in 1") },
+
+ { njs_str("0b + 1"),
+ njs_str("SyntaxError: Unexpected token \"0b\" in 1") },
{ njs_str("0B1__1"),
njs_str("SyntaxError: Unexpected token \"__1\" in 1") },
njs_str("SyntaxError: Unexpected token \"g\" in 1") },
{ njs_str("0X_ff"),
- njs_str("SyntaxError: Unexpected token \"_ff\" in 1") },
+ njs_str("SyntaxError: Unexpected token \"0X\" in 1") },
+
+ { njs_str("0X + 1"),
+ njs_str("SyntaxError: Unexpected token \"0X\" in 1") },
{ njs_str("0xff_"),
njs_str("SyntaxError: Unexpected token \"_\" in 1") },