Commit Graph

695 Commits

Author SHA1 Message Date
03c3bd310b add an additional test for 'dge' motion 2025-10-14 12:16:18 +01:00
22a8b807d2 handle edge case when building dfa from a string, where an exception was raised when our search regex contains an alternation where the second alternation is a substring of the first alternation, and add a test for it to make sure that it passes 2025-10-14 02:24:45 +01:00
be7a9b3035 add minimal modifications to implementation of 'dge' motion, so that failing test for 'dge' motion passes 2025-10-13 22:08:33 +01:00
8e56eb7628 begin adding tests for 'dge' delete motion (one test currently fails) 2025-10-13 22:03:49 +01:00
6f9365effb add tests for 'dB' motion 2025-10-13 21:41:45 +01:00
cb5013bc25 done adding tests for 'db' delete motion 2025-10-12 08:49:50 +01:00
88e1ae00a9 progress adding additional tests for 'db' motion 2025-10-12 08:42:05 +01:00
facc5b3761 begin adding tests for 'db' delete motion 2025-10-12 08:27:14 +01:00
ca2c2f438c when adding to followset in ONE_OR_MORE case, make sure we add the child to the followset as well 2025-10-12 00:32:55 +01:00
ce3470e612 fix bug in regex-test: dfa-gen.sml should add the position of the endMarker to the followSet as well 2025-10-12 00:22:14 +01:00
bc16421a24 add failing test 2025-10-11 14:35:15 +01:00
478a2e5002 add some more tests from freeCodeCamp tutorial 2025-10-11 14:27:56 +01:00
7f1f1f7bdc at end of char loop, track if length of dstate changed. If it did not, that means that we have encountered a loop that is at the end; thus, we should add the endMarker 2025-10-11 13:39:28 +01:00
b2931753d0 make dfa-gen.sml compile again, with parity before reimplementing it 2025-10-11 13:23:44 +01:00
96f0afc2b2 attempt at fixing dfa-gen to convert properly 2025-10-11 11:32:30 +01:00
a44afca40b checkpoint for reimplementing dfa-gen.sml 2025-10-10 11:54:34 +01:00
5a43954aef checkpoint 2025-10-10 04:59:32 +01:00
244d0ce26d begin attempt to compute followpos properly 2025-10-10 04:44:18 +01:00
bdfca17b5a implement function to insert a list to a pos 2025-10-10 04:00:34 +01:00
58c3e65fdd add list of follows to leaves in regex parse tree (only changed data type; need to populate follows list later) 2025-10-10 03:49:09 +01:00
108a30ea79 add utility function to insert from a list into a set 2025-10-10 03:29:52 +01:00
88eb30dbf2 done caching firstpos and lastpos, and using the cached data 2025-10-10 01:56:54 +01:00
6e646bdffa begin computing firstpos and lastpos during parsing 2025-10-10 01:43:24 +01:00
90327579d1 find failing test in regex: 'go*' does not match phrase 'gut feeling'. It should match the first character because the 'o' is optional, but the * acts like + instead, expecting at least one 'o' 2025-10-09 22:46:06 +01:00
7a3e4c2b67 add some additional regex tests 2025-10-09 22:26:33 +01:00
4665141a1d checkpoint for adding freeCodeCamp regex tests 2025-10-09 17:06:09 +01:00
c427cd25fa begin adding regex tests based on freeCodeCamp tutorial 2025-10-09 16:56:36 +01:00
e51c18166e begin adding tests based on tutorial by freeCodeCamp 2025-10-09 16:50:19 +01:00
3197315478 fix failing tests for escaping regex metacharacters 2025-10-09 06:22:21 +01:00
8bd8977027 add tests checking if regex escape sequences are recognised 2025-10-09 06:14:29 +01:00
a5fec6f1a2 add tests for escape sequences 2025-10-09 06:06:07 +01:00
5d7b9e35ba add tests that the regex returns an empty DFA when the regexString contains the endMarker 2025-10-09 05:44:35 +01:00
f32a53aabc added regex tests for case sensitivity 2025-10-09 05:39:01 +01:00
250ae239be begin adding tests for regex 2025-10-09 05:34:32 +01:00
70215fbc0a done implementing functionality to get PersistentVector.prevMatch working. We use the call stack to try the node at the previous index if we receive an invalid state from the recursive call. 2025-10-08 11:10:06 +01:00
088c5c3d98 checkpoint while implementing prevMatch functionality 2025-10-08 10:39:49 +01:00
0de7a9278a progress implementing help-prev-match for vector 2025-10-08 10:27:19 +01:00
3b823d7ae6 delete 'nextMatch' function in search-list.sml, and refactor other code to use alternative function 2025-10-08 08:16:20 +01:00
8941ce9f89 reimplement functionality to search forwards using 'n' command 2025-10-08 08:10:51 +01:00
108e021fdb log an exception if search-thread encounters a failure 2025-10-08 06:51:52 +01:00
4d1b2073dc reimplement functionality to run whole text search using DFA 2025-10-08 06:40:20 +01:00
3c2e5812cd reimplement function to search through text from scratch 2025-10-08 06:35:49 +01:00
5c8e74ac11 change type of SEARCH message to take a DFA, instead of a searchString 2025-10-08 05:54:19 +01:00
06106f5de8 remove 'searchString' field from app_type, because the same role is fulfilled by new 'dfa' field 2025-10-08 05:40:29 +01:00
df346d0a9e add ability to switch to case-sensitive-search-mode using '?' command from normal mode 2025-10-08 05:29:05 +01:00
8857f49537 pass DFA to 'SearchList.buildRange' function, so that we don't need to parse search string into DFA each time 2025-10-08 05:20:33 +01:00
fd8385fa81 add dfa field to app_type so that we don't rebuild DFA each time we want to execute a search again (like after deleting) 2025-10-08 05:02:15 +01:00
7f68084398 add 'caseSensitive' field to NORMAL_SEARCH_MODE, so that we know what kind of DFA to build 2025-10-08 04:53:04 +01:00
7a72bc2ed1 done with allowing different types of endMarkers 2025-10-07 14:44:40 +01:00
f085860f20 begin making changes to return a parse error if regex string contains an end marker 2025-10-07 14:36:35 +01:00