summaryrefslogtreecommitdiff
path: root/literals.go
diff options
context:
space:
mode:
authorAdam Scarr <adam@vektah.net>2017-08-08 20:51:54 +1000
committerAdam Scarr <adam@vektah.net>2017-08-08 20:52:25 +1000
commitfdd066e58ee7ed2bce7069c2f35a6ba005058da6 (patch)
tree5f212180e1ddee4bfe0a81e4b857c4c83516932b /literals.go
parent035af4d873d3de0685ab281be952e346547e40fd (diff)
Add a larger json benchmark
Diffstat (limited to 'literals.go')
-rw-r--r--literals.go13
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)
}
}