mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 03:38:42 -07:00
Allow whitespace to term non-quoted string
This commit is contained in:
@@ -508,7 +508,7 @@ func lexMapEnd(lx *lexer) stateFn {
|
||||
// Checks if the unquoted string was actually a boolean
|
||||
func (lx *lexer) isBool() bool {
|
||||
str := lx.input[lx.start:lx.pos]
|
||||
return str == "true" || str == "false" || str == "TRUE" || str == "FALSE"
|
||||
return str == "true" || str == "false" || str == "TRUE" || str == "FALSE"
|
||||
}
|
||||
|
||||
// lexString consumes the inner contents of a string. It assumes that the
|
||||
@@ -518,7 +518,8 @@ func lexString(lx *lexer) stateFn {
|
||||
switch {
|
||||
case r == '\\':
|
||||
return lexStringEscape
|
||||
case isNL(r) || r == eof || r == optValTerm:
|
||||
// Termination of non-quoted strings
|
||||
case isNL(r) || r == eof || r == optValTerm || isWhitespace(r):
|
||||
lx.backup()
|
||||
if lx.isBool() {
|
||||
lx.emit(itemBool)
|
||||
|
||||
@@ -361,7 +361,7 @@ t true
|
||||
f false
|
||||
tstr "true"
|
||||
tkey = two
|
||||
fkey = five
|
||||
fkey = five # This should be a string
|
||||
`
|
||||
|
||||
func TestNonQuotedStrings(t *testing.T) {
|
||||
@@ -389,6 +389,9 @@ func TestNonQuotedStrings(t *testing.T) {
|
||||
{itemString, "two", 12},
|
||||
{itemKey, "fkey", 13},
|
||||
{itemString, "five", 13},
|
||||
{itemCommentStart, "", 13},
|
||||
{itemText, " This should be a string", 13},
|
||||
|
||||
{itemEOF, "", 14},
|
||||
}
|
||||
lx := lex(noquotes)
|
||||
|
||||
Reference in New Issue
Block a user