diff options
author | Adam Scarr <adam@vektah.net> | 2017-08-08 20:51:54 +1000 |
---|---|---|
committer | Adam Scarr <adam@vektah.net> | 2017-08-08 20:52:25 +1000 |
commit | fdd066e58ee7ed2bce7069c2f35a6ba005058da6 (patch) | |
tree | 5f212180e1ddee4bfe0a81e4b857c4c83516932b /literals.go | |
parent | 035af4d873d3de0685ab281be952e346547e40fd (diff) |
Add a larger json benchmark
Diffstat (limited to 'literals.go')
-rw-r--r-- | literals.go | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/literals.go b/literals.go index 5dd9fef..70832f9 100644 --- a/literals.go +++ b/literals.go @@ -67,9 +67,16 @@ func StringLit(allowedQuotes string) Parser { ps.Pos = end + 1 return Node{Result: buf.String()} default: - r, w := utf8.DecodeRuneInString(ps.Input[end:]) - end += w - if buf != nil { + if buf == nil { + if ps.Input[end] < 127 { + end++ + } else { + _, w := utf8.DecodeRuneInString(ps.Input[end:]) + end += w + } + } else { + r, w := utf8.DecodeRuneInString(ps.Input[end:]) + end += w buf.WriteRune(r) } } |