Commit Graph

277 Commits

Author SHA1 Message Date
73c6a442ce Updated nodeType constants so that they aren't exported 2025-01-30 10:13:55 -05:00
ca8f8e1030 Renamed function 2025-01-30 10:02:59 -05:00
24a5045ebe Updated map and reduce function names so that they aren't exported 2025-01-30 09:52:00 -05:00
f6d56b74e1 Updated module name to 'kleingrep' (Let's goo!) 2025-01-30 09:22:31 -05:00
dc53951408 Update package name in import 2025-01-30 09:15:44 -05:00
aef8152fc1 Renamed package 'greg' to 'regex' 2025-01-30 09:15:29 -05:00
ca8d32cd7f Added more tests 2025-01-30 09:09:34 -05:00
368941e5c7 Fix out-of-bounds access in genRangeInclusive 2025-01-30 09:09:20 -05:00
b9da5ec08d Replace use of 'genRange' with 'genRangeInclusive' 2025-01-30 09:09:03 -05:00
c5a43c47f0 Update type and method references to use qualified names 2025-01-30 09:03:37 -05:00
c3c3829ac9 Move 'genRange' function to 'cmd' 2025-01-30 09:03:07 -05:00
ee6bb3959c Removed function that wasn't being used in 'greg', moved to 'main' 2025-01-30 08:58:43 -05:00
c06d81d17d Updated struct field reference 2025-01-30 08:58:11 -05:00
1a2f1b7ca9 Restructured code into 'cmd' module with CLI and 'greg' module with regex library; export necessary struct fields and methods 2025-01-30 08:56:12 -05:00
54df6f1815 Added numeric range tests 2025-01-29 14:45:25 -05:00
bd424ceccd Catch error from range2regex() and return it 2025-01-29 14:45:05 -05:00
e8e09dd0f9 Throw error instead of panicking 2025-01-29 14:44:48 -05:00
46f4a2ad83 Return error instead of panicking if the range cannot be processed 2025-01-29 14:30:16 -05:00
833dd269a8 Added more descriptive comments; throw error if non-greedy operator is used; use new definition for kleene() 2025-01-29 10:28:18 -05:00
ecab7cc522 Make kleene() throw an error if the state is not quantifiable 2025-01-29 10:27:54 -05:00
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