Commit Graph

457 Commits

Author SHA1 Message Date
8b6d35c106 Finished adding tests from Python's test suite; removed a non-greedy operator from one of the old tests 2025-01-29 10:27:08 -05:00
5e6435d8a7 Throw error if non-greedy operator is attempted 2025-01-29 10:03:02 -05:00
5bb06900cc Added more tests 2025-01-28 22:42:44 -05:00
bde153ce08 Changed '-t' flag to include the new RE_SINGLE_LINE flag as well 2025-01-28 16:52:50 -05:00
4c3c7e21c5 Fixed inverted Perl classes inside character classes eg. '[\D]'; added new flag for 'single-line' mode, where dot metacharacter matches newlines 2025-01-28 16:52:28 -05:00
61a128e27a Added more tests 2025-01-28 16:51:32 -05:00
c700b01e80 Remove duplicate lines from re_tests.py 2025-01-28 15:58:02 -05:00
578959c9b3 Add Python's regex test suite 2025-01-28 15:57:10 -05:00
3918682339 Added more tests 2025-01-28 15:54:31 -05:00
d890a93775 Store multiline mode as a global flag 2025-01-28 15:54:25 -05:00
d029a171c0 Changed behavior of SOS and EOS assertions depending on whether multiline mode is enabled or not 2025-01-28 15:51:48 -05:00
74b37ff818 Removed unused function 2025-01-28 12:39:32 -05:00
7cd24959bf Added case-insensitive tests (copied the normal tests, added the case-insensitive flag and swapped the case of all characters in the test string 2025-01-28 12:39:04 -05:00
6e309be71c Moved case-insensitive stuff to thompson(); fixed case-insensitivity in character classes and ranges 2025-01-28 12:34:36 -05:00
c92b3d0e7c Removed case-insensitive functionality from shuntingYard(); should be put in thompson() instead 2025-01-28 12:12:37 -05:00
94c8044eb7 Running all tests case-insensitive with the same match indices wasn't a good idea 2025-01-28 11:42:53 -05:00
4a45d1c95e allCases() now takes a boolean parameter that indicates whether we are case-sensitive or not 2025-01-28 11:41:51 -05:00
861eb6067e Apply case-insensitive flag inside character classes as well 2025-01-28 11:41:17 -05:00
027dfb4d6b Run all tests twice - case-sensitive, then case-insensitive 2025-01-28 11:17:02 -05:00
932a20f641 Added more tests 2025-01-28 09:44:41 -05:00
4547ba74f0 Throw error if a quantifier is quantified eg. 'a**'; throw error if start of character range is greater than the end eg. '[b-a]' 2025-01-28 09:42:53 -05:00
125590d334 Replaced literal brackets with LBRACKET and RBRACKET metacharacters 2025-01-28 09:15:10 -05:00
e3b8eaf5f8 Removed unused function 2025-01-28 08:39:02 -05:00
20142e93c4 Removed some panics with error throwing; changed some comments; removed use of mustPop() in parsing Kleene star - I use pop() and then throw an error if pop() returns an error 2025-01-28 08:30:36 -05:00
5e3801af7c Reformatted error messages according to Go guidelines 2025-01-27 20:06:35 -05:00
d44a25f412 Removed a type that I wasn't using 2025-01-27 20:04:24 -05:00
3f5f8fad2c Removed unnecessary functions (using staticcheck) 2025-01-27 19:58:59 -05:00
e671137493 Changed error messages - removed capitalization and punctuation to find Go's error message guidelines 2025-01-27 19:57:15 -05:00
abc40bf770 Return an error if a POSIX charclass is specified outside of brackets 2025-01-27 16:07:23 -05:00
3fb9bc1446 Added support for POSIX character classes 2025-01-27 16:00:35 -05:00
ae76e2e55e Added a function to generate a slice of all values (inclusive) in a range 2025-01-27 16:00:26 -05:00
dec6aaca93 Added POSIX charclass tests 2025-01-27 16:00:05 -05:00
43d0cbf0a0 Use 'CONCAT' instead of literally specifiying the rune 2025-01-27 13:54:02 -05:00
68a3581d93 Added note on PCRE backreferences 2025-01-26 22:19:16 -05:00
ff250338b4 Added more tests; added backreference comment 2025-01-26 22:18:34 -05:00
0367c0d614 Added more tests 2025-01-26 10:24:29 -05:00
304ef68d45 Added more tests 2025-01-25 22:41:43 -05:00
1db61108e4 Allow pipes that have a missing operand - if an operand is missing, it is replaced with a zeroLengthMatchState(), which always has a zero-length match 2025-01-25 22:36:58 -05:00
8feaefeeb8 Added more tests 2025-01-25 22:36:04 -05:00
a259f0ceab Created a function to return a state that will always have a zero-length state 2025-01-25 22:35:52 -05:00
08e01a1c81 Loosened restrictions for concatenation - It's okay if one of the
elements is missing
2025-01-25 13:09:47 -05:00
5c2869ff81 Updated test case 2025-01-25 13:09:29 -05:00
4dfc77900f Added new assertion that always evaluates to true 2025-01-25 13:04:51 -05:00
93903fc557 Allowed creation of empty non-capturing groups 2025-01-25 13:04:36 -05:00
036e625a15 Added more test cases 2025-01-25 13:04:08 -05:00
4966a222f9 Added detection of empty parentheses, as zero-length matches 2025-01-25 12:44:40 -05:00
263619c50c Added more test cases 2025-01-25 12:23:15 -05:00
d7c9c181e1 Fixed bug in character class implementation 2025-01-24 19:48:53 -05:00
5a085907cf WIP - fixing character classes 2025-01-24 17:06:19 -05:00
65e5b4e2af Added more test cases 2025-01-24 17:06:00 -05:00