|
|
|
@ -131,13 +131,9 @@ func newEscapedNode(c rune, inCharClass bool) (postfixNode, error) {
|
|
|
|
|
case 'v': // Vertical tab
|
|
|
|
|
toReturn.nodetype = characterNode
|
|
|
|
|
toReturn.contents = append(toReturn.contents, rune(11))
|
|
|
|
|
case '-': // Literal hyphen - only in character class
|
|
|
|
|
if inCharClass {
|
|
|
|
|
toReturn.nodetype = characterNode
|
|
|
|
|
toReturn.contents = append(toReturn.contents, '-')
|
|
|
|
|
} else {
|
|
|
|
|
return postfixNode{}, fmt.Errorf("invalid escape character")
|
|
|
|
|
}
|
|
|
|
|
case '-': // Literal hyphen
|
|
|
|
|
toReturn.nodetype = characterNode
|
|
|
|
|
toReturn.contents = append(toReturn.contents, '-')
|
|
|
|
|
default: // None of the above - append it as a regular character
|
|
|
|
|
if isNormalChar(c) { // Normal characters cannot be escaped
|
|
|
|
|
return postfixNode{}, fmt.Errorf("invalid escape character")
|
|
|
|
|