Refactored isNormalChar(), wrote function to get special characters that have metachar replacements
This commit is contained in:
14
misc.go
14
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)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user