From 6fb266e0d2ae930c229db81d48deed7c0a463de1 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Fri, 24 Jan 2025 15:49:33 -0500 Subject: [PATCH] Refactored isNormalChar(), wrote function to get special characters that have metachar replacements --- misc.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/misc.go b/misc.go index 518ec81..0f27b89 100644 --- a/misc.go +++ b/misc.go @@ -17,6 +17,8 @@ var NONCAPLPAREN_CHAR rune = 0xF0006 // Represents a non-capturing group's LPARE var ESC_BACKSLASH rune = 0xF0007 // Represents an escaped backslash var CHAR_RANGE rune = 0xF0008 // Represents a character range +var specialChars = []rune{'?', '*', '\\', '^', '$', '{', '}', '(', ')', '[', ']', '+', '|', '.', '~', '<', '>', LBRACKET, RBRACKET, NONCAPLPAREN_CHAR} + // An interface for int and rune, which are identical type character interface { int | rune @@ -32,9 +34,17 @@ func isWordBoundary(str []rune, idx int) bool { return wbounded } +func isSpecialChar(c rune) bool { + return slices.Contains(specialChars, c) + +} + +// Some special characters have metacharacter replacements. These characters, when encountered in their literal form, can be treated as regular characters. +func isSpecialCharWithMetacharReplacement(c rune) bool { + return slices.Contains([]rune{'[', ']'}, c) +} + func isNormalChar(c rune) bool { - specialChars := []rune(`?*\^${}()+|[].~<>`) - specialChars = append(specialChars, LBRACKET, RBRACKET, NONCAPLPAREN_CHAR) return !slices.Contains(specialChars, c) }