From 7e2021be24df01ef4a36005d0290c16003b760f5 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Fri, 3 Oct 2025 07:29:28 +0100 Subject: [PATCH] tiny changes to dfa-gen.sml to make it more presentable when asking for advice --- fcore/search-list/{nfa.sml => dfa-gen.sml} | 21 ++++++++------------- fcore/search-list/nfa | Bin 151296 -> 0 bytes shf.mlb | 2 +- 3 files changed, 9 insertions(+), 14 deletions(-) rename fcore/search-list/{nfa.sml => dfa-gen.sml} (97%) delete mode 100755 fcore/search-list/nfa diff --git a/fcore/search-list/nfa.sml b/fcore/search-list/dfa-gen.sml similarity index 97% rename from fcore/search-list/nfa.sml rename to fcore/search-list/dfa-gen.sml index 9d5eeb8..45b439a 100644 --- a/fcore/search-list/nfa.sml +++ b/fcore/search-list/dfa-gen.sml @@ -1,4 +1,4 @@ -structure Nfa = +structure DfaGen = struct datatype regex = CHAR_LITERAL of {char: char, position: int} @@ -100,7 +100,7 @@ struct fun toCharsAndPositionsList tree = helpToCharsAndPositionsList (tree, []) end - structure ParseNfa = + structure ParseDfa = struct (* parsing through precedence climbing algorithm. *) val postfixLevel = 1 @@ -375,7 +375,7 @@ struct end | _ => raise Fail - "nfa.sml 310: should only have loops and concats \ + "dfa-gen.sml 310: should only have loops and concats \ \in list to filter") | [] => acc @@ -487,15 +487,10 @@ struct end end - fun parse str = - case ParseNfa.parse (str, 0) of - SOME (ast, _) => SOME ast - | NONE => NONE - - fun firstposWithChar regex = ToDfa.firstposWithChar (regex, []) - - fun lastpos regex = ToDfa.lastpos (regex, []) - val test = ToDfa.convert + fun fromString str = + case ParseDfa.parse (str, 0) of + SOME (ast, _) => ToDfa.convert ast + | NONE => Vector.fromList [] end -val SOME nfa = Nfa.parse "(a|b)*abb\^@" +val dfa = DfaGen.fromString "(a|b)*abb#" diff --git a/fcore/search-list/nfa b/fcore/search-list/nfa deleted file mode 100755 index 5a615968567b59553edcc83b39860eb51fb731ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151296 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

Uhv2Mb3fBQ5R0fXIyYY6Z7G0 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 diff --git a/shf.mlb b/shf.mlb index 5f88385..79630e8 100644 --- a/shf.mlb +++ b/shf.mlb @@ -14,7 +14,7 @@ ann in fcore/persistent-vector.sml end -fcore/search-list/nfa.sml +fcore/search-list/dfa-gen.sml fcore/search-list.sml message-types/input-msg.sml