Handle keys with dash. ref #10
This commit is contained in:
@@ -67,6 +67,10 @@ func isAlphanumeric(r rune) bool {
|
|||||||
return unicode.IsLetter(r) || r == '_'
|
return unicode.IsLetter(r) || r == '_'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isKeyChar(r rune) bool {
|
||||||
|
return isAlphanumeric(r) || r == '-'
|
||||||
|
}
|
||||||
|
|
||||||
func isDigit(r rune) bool {
|
func isDigit(r rune) bool {
|
||||||
return unicode.IsNumber(r)
|
return unicode.IsNumber(r)
|
||||||
}
|
}
|
||||||
@@ -276,7 +280,7 @@ func lexComma(l *lexer) stateFn {
|
|||||||
|
|
||||||
func lexKey(l *lexer) stateFn {
|
func lexKey(l *lexer) stateFn {
|
||||||
l.ignore()
|
l.ignore()
|
||||||
for isAlphanumeric(l.next()) {
|
for isKeyChar(l.next()) {
|
||||||
}
|
}
|
||||||
l.backup()
|
l.backup()
|
||||||
l.emit(tokenKey)
|
l.emit(tokenKey)
|
||||||
|
|||||||
@@ -84,6 +84,13 @@ func TestBasicKeyWithUnderscore(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBasicKeyWithDash(t *testing.T) {
|
||||||
|
testFlow(t, "hello-world", []token{
|
||||||
|
token{tokenKey, "hello-world"},
|
||||||
|
token{tokenEOF, ""},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestBasicKeyWithUppercaseMix(t *testing.T) {
|
func TestBasicKeyWithUppercaseMix(t *testing.T) {
|
||||||
testFlow(t, "helloHELLOHello", []token{
|
testFlow(t, "helloHELLOHello", []token{
|
||||||
token{tokenKey, "helloHELLOHello"},
|
token{tokenKey, "helloHELLOHello"},
|
||||||
|
|||||||
Reference in New Issue
Block a user