315f68df12 
					 
					
						
						
							
							Fixed typo  
						
						
						
						
					 
					
						2024-10-31 17:55:41 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						fd957d9518 
					 
					
						
						
							
							Added more test cases  
						
						
						
						
					 
					
						2024-10-31 17:55:07 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						19dc5064c8 
					 
					
						
						
							
							Made conditions for word boundary a little more relaxed  
						
						
						
						
					 
					
						2024-10-31 17:54:45 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a19d409796 
					 
					
						
						
							
							Set node type to ASSERTION if the character represents an assertion  
						
						
						
						
					 
					
						2024-10-31 17:14:56 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0736e813c1 
					 
					
						
						
							
							Fixed boneheaded mistake with checking assertion types  
						
						
						
						
					 
					
						2024-10-31 17:14:03 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						1aff6e2fa4 
					 
					
						
						
							
							Added a field to State, that tells me what kind of assertion (if any) it is making. Also added function to check if a state's contents contain a given value (checks assertions), and to find all matches that a state has for a character  
						
						
						
						
					 
					
						2024-10-31 17:13:34 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						f3bf5e9740 
					 
					
						
						
							
							Added function to check for word boundaries and delete an element from a slice  
						
						
						
						
					 
					
						2024-10-31 17:09:25 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						20db62c596 
					 
					
						
						
							
							Got rid of function that I don't need anymore  
						
						
						
						
					 
					
						2024-10-31 17:09:02 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						360bdc8e11 
					 
					
						
						
							
							Big rewrite - assertion handling, zero-match fixes, change in recursive calls  
						
						... 
						
						
						
						I added support for transitions. I wrote a function to determine if
a given state has transitions for a character at a given point in the
string. This helps me check if the current state has an assertion, and
take actions based on that.
I also fixed zero-length matching (almost, see todo.txt). It works for
nearly all cases I could think of, although I still need to write more
tests. I wrote a function to check if zero-length matches are possible
with a given state.
I also changed the way recursive calls work. Rather than passing a
modified string, the function stores the location in the input string.
This location is updated with each call to the function.
Finally, the function now increments the offset by 1 instead of
incrementing by the length of the longest match. This leads to a bit of
overhead eg. if a regex matches index 1-5, then 1-5, 2-5, 3-5, 4-5 are
all stored. To fix this, I wrote (and used) a function to check if
a match overlaps with any matches in a slice. 
						
						
					 
					
						2024-10-31 17:06:32 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						8dbecde3ae 
					 
					
						
						
							
							Added support for detecting assertion characters; changed input so that newline isn't required  
						
						
						
						
					 
					
						2024-10-31 16:51:53 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a752491563 
					 
					
						
						
							
							Added more test cases  
						
						
						
						
					 
					
						2024-10-31 16:47:59 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						656c506aa8 
					 
					
						
						
							
							Wrote function to provide correct node for escaped character  
						
						
						
						
					 
					
						2024-10-30 09:33:52 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						1bafdcdb7e 
					 
					
						
						
							
							Added support for inverted matches; moved escape character detection to its own function  
						
						
						
						
					 
					
						2024-10-30 09:33:25 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						5f4a6c5a3b 
					 
					
						
						
							
							Added constants for LBRACKET and RBRACKET  
						
						
						
						
					 
					
						2024-10-30 09:32:50 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						e6c607319c 
					 
					
						
						
							
							Added more tests  
						
						
						
						
					 
					
						2024-10-30 09:32:32 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						8e8e9e133f 
					 
					
						
						
							
							Fixed matching greediness eg. a(a|b)*a would not match 'aaa' in 'aaab'  
						
						
						
						
					 
					
						2024-10-29 20:07:30 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a619fd24f6 
					 
					
						
						
							
							Added map and reduce functions, and a function to return the difference between two sets  
						
						
						
						
					 
					
						2024-10-29 20:06:09 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						f8ee1b3200 
					 
					
						
						
							
							Added more tests  
						
						
						
						
					 
					
						2024-10-29 20:05:42 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						a66e8f1c08 
					 
					
						
						
							
							Concatenate every character if it is escaped  
						
						
						
						
					 
					
						2024-10-29 20:05:30 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d8299294ed 
					 
					
						
						
							
							Added test cases  
						
						
						
						
					 
					
						2024-10-29 14:41:00 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						45d348e7f4 
					 
					
						
						
							
							Updated TODO  
						
						
						
						
					 
					
						2024-10-29 10:08:41 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7b815343f4 
					 
					
						
						
							
							Removed exclamation mark in inverted metacharacters - had the opposite effect becasue of the way deleteFunc works  
						
						
						
						
					 
					
						2024-10-29 10:07:55 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						1a7fd12569 
					 
					
						
						
							
							Added support for some escaped metacharacters  
						
						
						
						
					 
					
						2024-10-29 10:05:39 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b8d5ea0897 
					 
					
						
						
							
							Wrote function to create a character node regardless of the contents of the node  
						
						
						
						
					 
					
						2024-10-29 10:05:01 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						445a7247f8 
					 
					
						
						
							
							Defined variables to provide ranges of characters for metacharacters  
						
						
						
						
					 
					
						2024-10-29 10:04:36 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ca945c7740 
					 
					
						
						
							
							Added support for character ranges and dot metacharacter  
						
						
						
						
					 
					
						2024-10-29 00:26:11 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						2af4a5f9fd 
					 
					
						
						
							
							Added more tests  
						
						
						
						
					 
					
						2024-10-29 00:25:38 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						76157af2b8 
					 
					
						
						
							
							Wrote function to generate rune slice representing valid dot metacharacter values  
						
						
						
						
					 
					
						2024-10-29 00:25:30 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						96b3009c14 
					 
					
						
						
							
							Updated TODO  
						
						
						
						
					 
					
						2024-10-28 17:40:03 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						444413e1f7 
					 
					
						
						
							
							Added postfixNode type to represent a node in the postfix representation of the regex  
						
						
						
						
					 
					
						2024-10-28 17:39:32 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						74c6a2e195 
					 
					
						
						
							
							Added more functions to stateContents type, removed append because I don't think I need it  
						
						
						
						
					 
					
						2024-10-28 17:39:14 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						49b84c5728 
					 
					
						
						
							
							Added test cases  
						
						
						
						
					 
					
						2024-10-28 17:38:51 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						3778869567 
					 
					
						
						
							
							Use stateContents type to allow a state to store multiple characters  
						
						
						
						
					 
					
						2024-10-28 17:38:43 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						4f2f14212c 
					 
					
						
						
							
							Use contains function, since the content may have multiple characters  
						
						
						
						
					 
					
						2024-10-28 17:37:55 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						11073759e3 
					 
					
						
						
							
							Added support for character classes (not ranges, yet); also take input from stdin instead of cmdline arg  
						
						
						
						
					 
					
						2024-10-28 17:37:20 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						cd680371fb 
					 
					
						
						
							
							Added function allEqual - checks if all given values are equal  
						
						
						
						
					 
					
						2024-10-28 17:31:21 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						df6efcd1f0 
					 
					
						
						
							
							Unique append to match indices (ensure match indices aren't repeated  
						
						
						
						
					 
					
						2024-10-28 15:44:37 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						704bec122a 
					 
					
						
						
							
							Added more tests  
						
						
						
						
					 
					
						2024-10-28 15:44:12 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						3a7373bb2b 
					 
					
						
						
							
							Started working on new type to represent state contents  
						
						
						
						
					 
					
						2024-10-28 13:06:16 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						fe5c94b4df 
					 
					
						
						
							
							Use new unique append to check if unique states have been added to tempStates  
						
						
						
						
					 
					
						2024-10-28 09:40:41 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						3984c54080 
					 
					
						
						
							
							Added more test cases  
						
						
						
						
					 
					
						2024-10-28 09:40:21 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						84c768fd5e 
					 
					
						
						
							
							Fixed small bug with question mark operator, wasn't adding the empty state's output  
						
						
						
						
					 
					
						2024-10-28 09:40:03 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						aee24644e9 
					 
					
						
						
							
							Use new unique_append function signature  
						
						
						
						
					 
					
						2024-10-28 09:39:37 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						aee04cd8fe 
					 
					
						
						
							
							unique_append now returns the number of unique elements appended  
						
						
						
						
					 
					
						2024-10-28 09:39:20 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ac2320b7ea 
					 
					
						
						
							
							Updated TODO  
						
						
						
						
					 
					
						2024-10-28 00:59:38 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						7286e07858 
					 
					
						
						
							
							Added question mark operator - 0 or 1  
						
						
						
						
					 
					
						2024-10-28 00:58:26 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						13a57a4347 
					 
					
						
						
							
							Stricter check for adding zero-length match at end of string  
						
						
						
						
					 
					
						2024-10-28 00:58:10 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						4a30977d15 
					 
					
						
						
							
							Added test cases  
						
						
						
						
					 
					
						2024-10-28 00:57:53 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						89a43c8f41 
					 
					
						
						
							
							Added test case  
						
						
						
						
					 
					
						2024-10-27 15:30:46 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						ae219f763a 
					 
					
						
						
							
							Added alternate function, removed relevant code from main; also started working on escape characters  
						
						
						
						
					 
					
						2024-10-27 15:30:33 -04:00