|
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 |
|
|
1520edad55
|
Enforce the rule that character classes must have at least one character; interpret literal closing brackets as regular characters
|
2025-01-24 15:50:36 -05:00 |
|
|
6fb266e0d2
|
Refactored isNormalChar(), wrote function to get special characters that have metachar replacements
|
2025-01-24 15:49:33 -05:00 |
|
|
423fcc9b54
|
Added more test cases (1 failing)
|
2025-01-24 14:58:18 -05:00 |
|
|
cf4d305b31
|
Allow hyphen to be escaped inside character class
|
2025-01-24 14:58:07 -05:00 |
|
|
9d3c228ace
|
Fixed edge cases with character ranges and character classes
|
2025-01-24 14:57:47 -05:00 |
|
|
5e12fe1c42
|
Added 'flags' field to test struct for all-group tests
|
2025-01-24 11:11:48 -05:00 |
|
|
f87458ee99
|
Added 'flags' field to test struct for 0-group tests
|
2025-01-24 11:10:01 -05:00 |
|
|
2937f2d917
|
Removed old comment
|
2025-01-22 20:27:35 -05:00 |
|
|
efab70f9dc
|
Implemented character range detection later in the code, using a metacharacter
|
2025-01-22 20:26:58 -05:00 |
|
|
cf964e41db
|
Modified genRange() so that it can work on ints and runes
|
2025-01-22 20:25:49 -05:00 |
|
|
649485f01d
|
Removed character range creation from the first part of shuntingYard() (the part that adds concatenation operators), because octal and hex values haven't yet been deciphered at this point in the code
|
2025-01-22 16:51:00 -05:00 |
|