Commit Graph

16 Commits

Author SHA1 Message Date
b35d045a09 fix bugs in implementation for 'Nfa.getMatchesInRange' 2025-09-29 22:57:19 +01:00
d37e510b24 progress fixing backtracking 2025-09-29 21:29:03 +01:00
64c16a7c25 fix bug with shadowing 'finishIdx' value, when we still wanted access to both the previous and the new 'finishIdx' 2025-09-29 21:21:06 +01:00
df78e20cb7 fix bug in 'Nfa.getMatches' loop function: when we find that this state is valid, continue loop from 'finishIdx + 1'. 2025-09-29 21:07:02 +01:00
13ccdbb202 return PersistentVector.t when building search-list/executing nfa, because we don't want to use a simple flat vector for the search list now 2025-09-29 14:02:07 +01:00
6d2b43606f when parsing a string into an NFA, return an option type if the syntax is invalid 2025-09-29 13:34:55 +01:00
7dc94632d6 fix backtracking bug in 'Nfa.getMatchesInRange' (we were passing the wrong value instead of 'strIdx' in the recursive call to the loop function) 2025-09-29 13:13:14 +01:00
b6720ed5f1 first pass of 'get matches in range from nfa' functionality 2025-09-29 12:18:45 +01:00
8d29bfab78 adjust nfa to return all matches in string, instead of just testing for one match and then returning true 2025-09-29 10:28:03 +01:00
f52a8306ea add comments to ongiong NFA implementation 2025-09-29 08:33:10 +01:00
6b7485f753 change NFA interpreter slightly so that, if we see that a match is invalid at some place, we check in the next place to see if it is valid later in the string 2025-09-29 02:00:04 +01:00
f8b707de20 interpret concatenation and alternation in nfa 2025-09-29 01:45:28 +01:00
e01712a065 progress interpreting alternation in nfa 2025-09-29 01:06:15 +01:00
d9720c5643 begin adding interpretation for NFA 2025-09-29 00:46:05 +01:00
d75b1a18ff flatten repeated concatenations and alternations into a single list when possible 2025-09-28 22:23:48 +01:00
032ca56bbf add initial implementation of compiling a regex string to an NFA 2025-09-28 22:01:44 +01:00