|
9d6344719f
|
Reverse order of trying branches if the quantifier is lazy
|
2025-02-14 11:37:28 -05:00 |
|
|
81b8b1b11c
|
Do not validate a backreference if the group that it refers to is not valid
|
2025-02-11 19:12:58 -05:00 |
|
|
f466d4a8d5
|
More progress on backreference implementation
|
2025-02-11 17:06:39 -05:00 |
|
|
8327450dd2
|
Started implementing backreferences (octal values should now be prefaced with \0)
|
2025-02-11 16:14:54 -05:00 |
|
|
073f231b89
|
Added function and examples for ReplaceAllFunc()
|
2025-02-10 21:35:51 -05:00 |
|
|
3b7257c921
|
Wrote function and example for ReplaceAllLiteral()
|
2025-02-10 21:25:49 -05:00 |
|
|
50221ff4d9
|
Wrote ReplaceAll(), to replace all matches of the regex with a given string
|
2025-02-10 12:29:54 -05:00 |
|
|
17a7dbae4c
|
Wrote FindAllStringSubmatch()
|
2025-02-10 08:39:10 -05:00 |
|
|
15ee49f42e
|
Rename method receivers from 'regex' to 're' (it's shorter)
|
2025-02-09 15:51:46 -05:00 |
|
|
b60ded4136
|
Don't break when a match is found, if we are looking for the longest match
|
2025-02-09 15:48:33 -05:00 |
|
|
fb47e082eb
|
Wrote new methods Expand() and preferLongest(); Use new function signatures (with preferLongest); only characters should be added to next state list
|
2025-02-09 15:40:39 -05:00 |
|
|
76e0170cb9
|
Removed unused function
|
2025-02-09 09:13:52 -05:00 |
|
|
c6ad4caa0d
|
Removed a bunch of unused code (let's go!!!)
|
2025-02-09 09:06:40 -05:00 |
|
|
d4e3942d27
|
Added Match() and FindStringSubmatch(); removed old code; updated comments
|
2025-02-09 08:58:09 -05:00 |
|
|
f15a5cae34
|
Store all states visited in a single run of 'addStateToList()' in a slice
|
2025-02-08 16:07:01 -05:00 |
|
|
22ead83625
|
Fixed assertion matching
|
2025-02-07 16:19:36 -05:00 |
|
|
3604486a9b
|
Used Pike's algorithm (an extension to Thompson's algorithm) (see Russ Cox's 2nd article); I think I almost have a working PCRE-style engine
|
2025-02-07 16:06:45 -05:00 |
|
|
ccf3b3b299
|
More progress on implementing PCRE matching
|
2025-02-06 22:08:56 -05:00 |
|
|
ed4ffde64e
|
REFACTOR NEEDED: Added another special case; insert instead of appending into currentStates
|
2025-02-05 22:51:55 -05:00 |
|
|
fbc9bea9fb
|
Commented out unused functions; use new nfaState parameters
|
2025-02-05 22:23:31 -05:00 |
|
|
858e535fba
|
Continued implementing Thompson's algorithm
|
2025-02-05 18:01:36 -05:00 |
|
|
7c62ba6bfd
|
Started implementing Thompson's algorithm for matching, because the old one was completely backtracking (so it would enter infinite loops on something like '(a*)*' )
The git diff claims that a ton of code was changed, but most of it was just indentation changes.
|
2025-02-05 12:21:12 -05:00 |
|
|
d4e8cb74fd
|
Replaced pointer to nfaState with nfaState
|
2025-02-05 11:32:20 -05:00 |
|
|
3ce611d121
|
More work towards implementing PCRE matching
|
2025-02-04 14:09:24 -05:00 |
|
|
753e973d82
|
Started rewrite of matching algorithm, got concatenation and alternation done, kleene and zero-state stuff is next
|
2025-02-03 22:01:52 -05:00 |
|
|
ad273b0c68
|
Trying to emulate backtracking by using string pointers within threads (something similar to rsc's 2nd regexp article)
|
2025-02-03 16:50:11 -05:00 |
|
|
bc32e0cb76
|
Started working on converting to PCRE matching rules (prefer left branch of alternation)
|
2025-02-03 14:06:14 -05:00 |
|
|
b6ab54f6dd
|
Reset threads when findAllSubmatchHelper is called
|
2025-02-02 12:42:00 -05:00 |
|
|
a46d2f4546
|
Updated comments
|
2025-02-01 18:07:31 -05:00 |
|
|
c88ebd1aa5
|
Added comments explaining what a Match is
|
2025-02-01 18:05:55 -05:00 |
|
|
6d692d0dfc
|
Rename Group.toString() to Group.String()
|
2025-02-01 12:51:32 -05:00 |
|
|
b5e6bc112c
|
Wrote 'reg.FindSubmatch()' which returns the leftmost match with submatches, renamed 'isValid' to 'IsValid' to export it, renamed 'ToString' to 'String'
|
2025-02-01 11:06:03 -05:00 |
|
|
6869cd00a2
|
Return error instead of nil when 'Find' fails
|
2025-01-31 10:52:38 -05:00 |
|
|
037ac75ea6
|
Wrote new method to return 0-group of leftmost match; reorganized some functions for better clarity; made 'FindNthMatch' a method
|
2025-01-31 10:12:53 -05:00 |
|
|
b685d2fd5f
|
Renamed 'findAllMatchesHelper' to 'findAllSubmatchHelper'
|
2025-01-31 09:56:30 -05:00 |
|
|
e22822e619
|
Renamed 'FindAllMatches' to 'FindAll' and made it a method; made it return a slice of 0-groups; the functionality of 'FindAllMatches' is now in 'FindAllSubmatch'
|
2025-01-31 09:54:09 -05:00 |
|
|
0d19664044
|
Cleared up some comments, wrote a skeleton for FindAllString
|
2025-01-30 22:57:35 -05:00 |
|
|
1bfb09b6c7
|
Made 'FindString' a method of 'Reg'
|
2025-01-30 22:51:31 -05:00 |
|
|
b8f5b9af7c
|
Updated one more reference to epsilon
|
2025-01-30 10:39:00 -05:00 |
|
|
be60f2fb51
|
Updated references to 'epsilon'
|
2025-01-30 10:38:26 -05:00 |
|
|
93474c5159
|
Renamed 'state' to 'nfaState' because 'state' by itself means nothing
|
2025-01-30 10:31:02 -05:00 |
|
|
289bba35e2
|
Updated assertion constants so that they aren't exported
|
2025-01-30 10:18:18 -05:00 |
|
|
aef8152fc1
|
Renamed package 'greg' to 'regex'
|
2025-01-30 09:15:29 -05:00 |
|