begin making changes to return a parse error if regex string contains an end marker
This commit is contained in:
@@ -339,7 +339,9 @@ struct
|
|||||||
val chr = String.sub (str, pos + 1)
|
val chr = String.sub (str, pos + 1)
|
||||||
val (isValid, chr) = isValidEscapeSequence chr
|
val (isValid, chr) = isValidEscapeSequence chr
|
||||||
in
|
in
|
||||||
if isValid then
|
if Fn.charIsEqual (chr, Fn.endMarker) then
|
||||||
|
NONE
|
||||||
|
else if isValid then
|
||||||
let
|
let
|
||||||
val chr = CHAR_LITERAL {char = chr, position = stateNum + 1}
|
val chr = CHAR_LITERAL {char = chr, position = stateNum + 1}
|
||||||
in
|
in
|
||||||
@@ -361,9 +363,12 @@ struct
|
|||||||
else
|
else
|
||||||
parseCharacterClass (pos + 1, str, stateNum)
|
parseCharacterClass (pos + 1, str, stateNum)
|
||||||
| chr =>
|
| chr =>
|
||||||
let val chr = CHAR_LITERAL {char = chr, position = stateNum + 1}
|
if Fn.charIsEqual (chr, Fn.endMarker) then
|
||||||
in SOME (pos + 1, chr, stateNum + 1)
|
NONE
|
||||||
end
|
else
|
||||||
|
let val chr = CHAR_LITERAL {char = chr, position = stateNum + 1}
|
||||||
|
in SOME (pos + 1, chr, stateNum + 1)
|
||||||
|
end
|
||||||
|
|
||||||
and climb (pos, str, lhs, level, stateNum) : (int * parse_tree * int) option =
|
and climb (pos, str, lhs, level, stateNum) : (int * parse_tree * int) option =
|
||||||
if pos = String.size str then
|
if pos = String.size str then
|
||||||
|
|||||||
Reference in New Issue
Block a user