|
3ce611d121
|
More work towards implementing PCRE matching
|
2025-02-04 14:09:24 -05:00 |
|
|
e0253dfaf3
|
Change kleene() to an alternation-style construct
|
2025-02-04 14:09:04 -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 |
|
|
5563a70568
|
Reverse the order in which I pop states for alternation, because this messes with the left branch-right branch thing
|
2025-02-03 21:59:41 -05:00 |
|
|
de0d7345a8
|
Store left and right branches of alternation separately
|
2025-02-03 21:59:05 -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 |
|
|
e167cdb2cb
|
Fixed mistake in test output
|
2025-02-03 16:49:30 -05:00 |
|
|
1fd48ae614
|
Store the current string pointer as a 'thread variable' (allows us to simulate backtracking)
|
2025-02-03 16:49:10 -05:00 |
|
|
09812956ac
|
Disable all optimizations
|
2025-02-03 16:48:09 -05:00 |
|
|
fbc9dfcc95
|
Trying something out; we'll see if it works
|
2025-02-03 16:47:53 -05:00 |
|
|
bc32e0cb76
|
Started working on converting to PCRE matching rules (prefer left branch of alternation)
|
2025-02-03 14:06:14 -05:00 |
|
|
ad0f7d0178
|
Added new state fields to tell if a state is a question or alternation
|
2025-02-03 14:05:53 -05:00 |
|
|
4e597f8eb1
|
Implemented a priority-queue to use while matching
|
2025-02-03 14:05:30 -05:00 |
|
|
ef476e8875
|
Reverse the order of the numeric range before adding it, to maintain compatibility with PCRE matching rules (even though I don't implement them, if I do in the future)
|
2025-02-02 13:46:48 -05:00 |
|
|
7e6b02632f
|
Added more tests; commented out tests that I am failing
|
2025-02-02 13:46:08 -05:00 |
|
|
f94e3f2e71
|
Added comments
|
2025-02-02 12:44:06 -05:00 |
|
|
b129d83c3f
|
Added function to reset threads
|
2025-02-02 12:43:40 -05:00 |
|
|
43aa7b5876
|
Updated documentation
|
2025-02-02 12:42:38 -05:00 |
|
|
9a3bfca313
|
Renamed unique_append to uniqueAppend
|
2025-02-02 12:42:29 -05:00 |
|
|
b6ab54f6dd
|
Reset threads when findAllSubmatchHelper is called
|
2025-02-02 12:42:00 -05:00 |
|
|
6a96c98d04
|
Fixed bug where the regex '(()|.)(b)' wouldn't compile
|
2025-02-01 19:20:33 -05:00 |
|
|
3cfc2a6854
|
Updated Makefile
|
2025-02-01 18:52:26 -05:00 |
|
|
5d7a02e796
|
Added gcflags to go build
|
2025-02-01 18:51:58 -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 |
|
|
fd102292c6
|
Added example for FindSubmatch
|
2025-02-01 18:05:43 -05:00 |
|
|
6d692d0dfc
|
Rename Group.toString() to Group.String()
|
2025-02-01 12:51:32 -05:00 |
|
|
7c4538a259
|
Added 'example' file that contains testable examples
|
2025-02-01 12:50:49 -05:00 |
|
|
2a9ae0b68a
|
Wrote test for 'FindSubmatch'
|
2025-02-01 11:09:05 -05:00 |
|
|
783ae2ad10
|
Updated call to 'isValid' with call to 'IsValid'
|
2025-02-01 11:06:26 -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 |
|
|
206fea34cd
|
Added function to return the number of subexpressions in the group
|
2025-02-01 11:04:49 -05:00 |
|
|
fcdb23524a
|
Added more documentation
|
2025-02-01 11:04:24 -05:00 |
|
|
ac936659b6
|
Updated documentation
|
2025-01-31 16:52:26 -05:00 |
|
|
e6dba9fdcf
|
Updated documentation
|
2025-01-31 16:51:46 -05:00 |
|
|
30779a446b
|
Updated documentation
|
2025-01-31 16:46:19 -05:00 |
|
|
f629a0f08f
|
Added 'mustCompile' which panicks if there is an error compiling
|
2025-01-31 16:46:05 -05:00 |
|
|
6869cd00a2
|
Return error instead of nil when 'Find' fails
|
2025-01-31 10:52:38 -05:00 |
|
|
02bc8f30a2
|
Added test for 'Find'
|
2025-01-31 10:52:27 -05:00 |
|
|
ac05bceda3
|
Use method instead of function
|
2025-01-31 10:13:02 -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 |
|
|
e9d4e857cf
|
Run 'TestFindAllStrings' since that function has been implemented
|
2025-01-31 10:11:52 -05:00 |
|
|
b685d2fd5f
|
Renamed 'findAllMatchesHelper' to 'findAllSubmatchHelper'
|
2025-01-31 09:56:30 -05:00 |
|
|
8eda5055ff
|
Replaced call to 'FindAllMatches' with call to 'FindAll' or 'FindAllSubmatch' depending on whether I need submatches
|
2025-01-31 09:55:36 -05:00 |
|
|
45b6566b2c
|
Replaced function call with method call
|
2025-01-31 09:54:35 -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 |
|
|
692de2a32b
|
Added lookarounds and numeric ranges to documentation
|
2025-01-31 09:26:21 -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 |
|
|
b0b8bf23af
|
Updated documentation
|
2025-01-30 22:51:16 -05:00 |
|