|
|
@@ -26,10 +26,13 @@ func (self *reader) peekChar() (byte, bool) {
|
|
26
|
26
|
return self.data[self.pos], true
|
|
27
|
27
|
}
|
|
28
|
28
|
|
|
29
|
|
-func (self *reader) takeChar() string {
|
|
|
29
|
+func (self *reader) takeChar() (string, bool) {
|
|
30
|
30
|
self.checkPos()
|
|
|
31
|
+ if self.pos == self.len() {
|
|
|
32
|
+ return "", false
|
|
|
33
|
+ }
|
|
31
|
34
|
self.pos += 1
|
|
32
|
|
- return self.data[self.pos-1 : self.pos]
|
|
|
35
|
+ return self.data[self.pos-1 : self.pos], true
|
|
33
|
36
|
}
|
|
34
|
37
|
|
|
35
|
38
|
func (self *reader) takeUntil(needle string) (string, bool) {
|
|
|
@@ -185,7 +188,7 @@ func tokenize(str string) tokenizeResult {
|
|
185
|
188
|
if rdr.done() {
|
|
186
|
189
|
return tokenizeResult{code: tokenizeResultCodeMissingEscapedCharacter, err_loc: rdr.pos - 1}
|
|
187
|
190
|
}
|
|
188
|
|
- new_chars := rdr.takeChar()
|
|
|
191
|
+ new_chars, _ := rdr.takeChar()
|
|
189
|
192
|
b.bufAppend(new_chars)
|
|
190
|
193
|
default:
|
|
191
|
194
|
b.bufAppendChar(this_char)
|