Skip to content

Commit ede49b6

Browse files
committed
0.7.1 more cleanup
1 parent dbf3a6d commit ede49b6

File tree

1 file changed

+25
-27
lines changed

1 file changed

+25
-27
lines changed

src/parser.rs

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -74,33 +74,29 @@ impl<'a> Tokenizer<'a> {
7474
Ok(())
7575
}
7676

77-
fn read_escaped_char(&mut self) -> JsonResult<()> {
78-
let ch = try!(self.expect());
79-
let ch = match ch {
80-
b'b' => 0x8,
81-
b'f' => 0xC,
82-
b't' => b'\t',
83-
b'r' => b'\r',
84-
b'n' => b'\n',
85-
b'u' => {
86-
try!(self.read_codepoint());
87-
return Ok(());
88-
},
89-
_ => ch
90-
};
91-
self.buffer.push(ch);
92-
93-
Ok(())
94-
}
95-
9677
fn read_string(&mut self) -> JsonResult<String> {
9778
self.buffer.clear();
9879

9980
loop {
10081
let ch = try!(self.expect());
10182
match ch {
10283
b'"' => break,
103-
b'\\' => try!(self.read_escaped_char()),
84+
b'\\' => {
85+
let ch = try!(self.expect());
86+
let ch = match ch {
87+
b'b' => 0x8,
88+
b'f' => 0xC,
89+
b't' => b'\t',
90+
b'r' => b'\r',
91+
b'n' => b'\n',
92+
b'u' => {
93+
try!(self.read_codepoint());
94+
continue;
95+
},
96+
_ => ch
97+
};
98+
self.buffer.push(ch);
99+
},
104100
_ => self.buffer.push(ch)
105101
}
106102
}
@@ -222,16 +218,18 @@ impl<'a> Tokenizer<'a> {
222218
}
223219

224220
macro_rules! expect {
225-
($parser:ident, $p:pat => $value:ident) => (
226-
match try!($parser.consume()) {
227-
$p => $value,
228-
token => return Err(JsonError::unexpected_token(token))
221+
($parser:ident, $token:pat => $value:ident) => (
222+
match $parser.consume() {
223+
Ok($token) => $value,
224+
Ok(token) => return Err(JsonError::unexpected_token(token)),
225+
Err(error) => return Err(error),
229226
}
230227
);
231228
($parser:ident, $token:pat) => ({
232-
match try!($parser.consume()) {
233-
$token => {}
234-
token => return Err(JsonError::unexpected_token(token))
229+
match $parser.consume() {
230+
Ok($token) => {},
231+
Ok(token) => return Err(JsonError::unexpected_token(token)),
232+
Err(error) => return Err(error),
235233
}
236234
})
237235
}

0 commit comments

Comments
 (0)