< prev index next >
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/joni/Parser.java
Print this page
rev 52890 : 8223904: Improve Nashorn matching
Reviewed-by: jlaskey, sundar, mschoene, rhalade
*** 450,469 ****
}
private Node parseExp(final TokenType term) {
if (token.type == term)
{
! return StringNode.EMPTY; // goto end_of_token
}
Node node = null;
boolean group = false;
switch(token.type) {
case ALT:
case EOT:
! return StringNode.EMPTY; // end_of_token:, node_new_empty
case SUBEXP_OPEN:
node = parseEnclose(TokenType.SUBEXP_CLOSE);
if (returnCode == 1) {
group = true;
--- 450,469 ----
}
private Node parseExp(final TokenType term) {
if (token.type == term)
{
! return StringNode.createEmpty(); // goto end_of_token
}
Node node = null;
boolean group = false;
switch(token.type) {
case ALT:
case EOT:
! return StringNode.createEmpty(); // end_of_token:, node_new_empty
case SUBEXP_OPEN:
node = parseEnclose(TokenType.SUBEXP_CLOSE);
if (returnCode == 1) {
group = true;
*** 567,577 ****
case INTERVAL:
if (syntax.contextIndepRepeatOps()) {
if (syntax.contextInvalidRepeatOps()) {
throw new SyntaxException(ERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED);
}
! node = StringNode.EMPTY; // node_new_empty
} else {
return parseExpTkByte(group); // goto tk_byte
}
break;
--- 567,577 ----
case INTERVAL:
if (syntax.contextIndepRepeatOps()) {
if (syntax.contextInvalidRepeatOps()) {
throw new SyntaxException(ERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED);
}
! node = StringNode.createEmpty(); // node_new_empty
} else {
return parseExpTkByte(group); // goto tk_byte
}
break;
< prev index next >