From f085860f20b9e2628c7b77bb44ae520f683b5b4c Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Tue, 7 Oct 2025 14:36:35 +0100 Subject: [PATCH] begin making changes to return a parse error if regex string contains an end marker --- fcore/search-list/dfa-gen.sml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/fcore/search-list/dfa-gen.sml b/fcore/search-list/dfa-gen.sml index 5f0c9f8..4e1b70a 100644 --- a/fcore/search-list/dfa-gen.sml +++ b/fcore/search-list/dfa-gen.sml @@ -339,7 +339,9 @@ struct val chr = String.sub (str, pos + 1) val (isValid, chr) = isValidEscapeSequence chr in - if isValid then + if Fn.charIsEqual (chr, Fn.endMarker) then + NONE + else if isValid then let val chr = CHAR_LITERAL {char = chr, position = stateNum + 1} in @@ -361,9 +363,12 @@ struct else parseCharacterClass (pos + 1, str, stateNum) | chr => - let val chr = CHAR_LITERAL {char = chr, position = stateNum + 1} - in SOME (pos + 1, chr, stateNum + 1) - end + if Fn.charIsEqual (chr, Fn.endMarker) then + NONE + 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 = if pos = String.size str then