Commit Graph

437 Commits (1f06dcef649c90968c23ffbcd663f3fc8380883e)
 

Author SHA1 Message Date
Aadhavan Srinivasan 9e12f9dcb3 Added field to Reg, denoting if we prefer longest match (POSIX style) or not (perl style) 4 weeks ago
Aadhavan Srinivasan 47f88c817f Fixed typo 4 weeks ago
Aadhavan Srinivasan 835d495990 Removed capitalization for error message (staticcheck) 4 weeks ago
Aadhavan Srinivasan 76e0170cb9 Removed unused function 4 weeks ago
Aadhavan Srinivasan d172a58258 Throw error if match isn't found but test.result has >0 elements 4 weeks ago
Aadhavan Srinivasan 7231169270 Removed unused functions 4 weeks ago
Aadhavan Srinivasan e546f01c20 Removed redundant return (staticcheck) 4 weeks ago
Aadhavan Srinivasan b7467a00f1 Removed priorityQueue (unused) 4 weeks ago
Aadhavan Srinivasan c6ad4caa0d Removed a bunch of unused code (let's go!!!) 4 weeks ago
Aadhavan Srinivasan 6334435b83 Updated tests since the engine uses Perl matching instead of POSIX matching; added tests for FindStringSubmatch 4 weeks ago
Aadhavan Srinivasan 78fb5606dd Use new definition of Reg 4 weeks ago
Aadhavan Srinivasan eddd2ae700 Updated documentation 4 weeks ago
Aadhavan Srinivasan c577064977 Added string field to Reg, that contains the expression string; wrote method to return the string 4 weeks ago
Aadhavan Srinivasan d4e3942d27 Added Match() and FindStringSubmatch(); removed old code; updated comments 4 weeks ago
Aadhavan Srinivasan f15a5cae34 Store all states visited in a single run of 'addStateToList()' in a slice 4 weeks ago
Aadhavan Srinivasan 62ca1a872a Made zeroLengthMatchState() return a pointer; reduced the number of comparisons performd by nfaState.equals 4 weeks ago
Aadhavan Srinivasan 99230b49de Use new function signature for zeroLengthMatchState() 4 weeks ago
Aadhavan Srinivasan 22ead83625 Fixed assertion matching 1 month ago
Aadhavan Srinivasan 3604486a9b Used Pike's algorithm (an extension to Thompson's algorithm) (see Russ Cox's 2nd article); I think I almost have a working PCRE-style engine 1 month ago
Aadhavan Srinivasan 052de55826 question() now returns 2 values 1 month ago
Aadhavan Srinivasan d2ad0d95a8 Modified question operator so that it doesn't create an unnecessary zero-state 1 month ago
Aadhavan Srinivasan ccf3b3b299 More progress on implementing PCRE matching 1 month ago
Aadhavan Srinivasan 1d4f695f8f Wrote function to check if a state is in an nfaState, based on the Equals function 1 month ago
Aadhavan Srinivasan 8534174ea1 Use pointers instead of values 1 month ago
Aadhavan Srinivasan ed4ffde64e REFACTOR NEEDED: Added another special case; insert instead of appending into currentStates 1 month ago
Aadhavan Srinivasan fbc9bea9fb Commented out unused functions; use new nfaState parameters 1 month ago
Aadhavan Srinivasan cca8c7cda2 Got rid of transitions parameter, changed how kleene state is processed
I replaced the transition parameter for nfaState, replacing it with a
single nfaState pointer. This is because any non-alternation state will
only have one next state, so the map was just added complexity.

I changed alternation processing - instead of having their own dedicated
fields, they just use the new 'next' parameter, and another one called
'splitState'.

I also changed the kleene state processing to remove the unecessary
empty state in the right-side alternation (it actually messed up my
matching).
1 month ago
Aadhavan Srinivasan 858e535fba Continued implementing Thompson's algorithm 1 month ago
Aadhavan Srinivasan 7c62ba6bfd Started implementing Thompson's algorithm for matching, because the old one was completely backtracking (so it would enter infinite loops on something like '(a*)*' )
The git diff claims that a ton of code was changed, but most of it was just indentation changes.
1 month ago
Aadhavan Srinivasan d4e8cb74fd Replaced pointer to nfaState with nfaState 1 month ago
Aadhavan Srinivasan 3ce611d121 More work towards implementing PCRE matching 1 month ago
Aadhavan Srinivasan e0253dfaf3 Change kleene() to an alternation-style construct 1 month ago
Aadhavan Srinivasan 753e973d82 Started rewrite of matching algorithm, got concatenation and alternation done, kleene and zero-state stuff is next 1 month ago
Aadhavan Srinivasan 5563a70568 Reverse the order in which I pop states for alternation, because this messes with the left branch-right branch thing 1 month ago
Aadhavan Srinivasan de0d7345a8 Store left and right branches of alternation separately 1 month ago
Aadhavan Srinivasan ad273b0c68 Trying to emulate backtracking by using string pointers within threads (something similar to rsc's 2nd regexp article) 1 month ago
Aadhavan Srinivasan e167cdb2cb Fixed mistake in test output 1 month ago
Aadhavan Srinivasan 1fd48ae614 Store the current string pointer as a 'thread variable' (allows us to simulate backtracking) 1 month ago
Aadhavan Srinivasan 09812956ac Disable all optimizations 1 month ago
Aadhavan Srinivasan fbc9dfcc95 Trying something out; we'll see if it works 1 month ago
Aadhavan Srinivasan bc32e0cb76 Started working on converting to PCRE matching rules (prefer left branch of alternation) 1 month ago
Aadhavan Srinivasan ad0f7d0178 Added new state fields to tell if a state is a question or alternation 1 month ago
Aadhavan Srinivasan 4e597f8eb1 Implemented a priority-queue to use while matching 1 month ago
Aadhavan Srinivasan 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) 1 month ago
Aadhavan Srinivasan 7e6b02632f Added more tests; commented out tests that I am failing 1 month ago
Aadhavan Srinivasan f94e3f2e71 Added comments 1 month ago
Aadhavan Srinivasan b129d83c3f Added function to reset threads 1 month ago
Aadhavan Srinivasan 43aa7b5876 Updated documentation 1 month ago
Aadhavan Srinivasan 9a3bfca313 Renamed unique_append to uniqueAppend 1 month ago
Aadhavan Srinivasan b6ab54f6dd Reset threads when findAllSubmatchHelper is called 1 month ago