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  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ae09462bd4 
					 
					
						
						
							
							Added important note  
						
						 
						
						
						
						
					 
					
						2025-01-21 22:19:37 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d210a85253 
					 
					
						
						
							
							Updated handling of '\b' when inside character class, made invalid  
						
						 
						
						... 
						
						
						
						escapes an error.
The '\b' value refers to a word boundary normally, but refers to the
backspace ASCII value inside a character class. I updated
newEscapedNode() to deal with this. I also changed the behavior, so that
trying to escape any other value results in an error, instead of just
returning the character as-is. 
						
						
					 
					
						2025-01-21 22:14:38 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						48cff259b2 
					 
					
						
						
							
							Updated tests  
						
						 
						
						
						
						
					 
					
						2025-01-21 22:13:57 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						25cb79f01b 
					 
					
						
						
							
							Changed the value of EPSILON, so that we can use the NUL character  
						
						 
						
						... 
						
						
						
						(which it used to be) in a regex; Also added code to detect escaped
backslashes
Specifically, I replace an escaped backslash with a metacharacter, then
replace it back later on. This prevents problems, like detecting whether
the opening bracket is escaped in '\\[a]'. 
						
						
					 
					
						2025-01-21 22:12:29 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0fb78abf7f 
					 
					
						
						
							
							Added function to replace an element in a slice given its value  
						
						 
						
						
						
						
					 
					
						2025-01-21 22:09:41 -05:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9dc4fd4595 
					 
					
						
						
							
							Started adding tests from Python's RE test suite  
						
						 
						
						
						
						
					 
					
						2025-01-20 18:04:19 -05:00