Skip to content

Commit 31b7eba

Browse files
committed
fixed earlier problem
1 parent 330c84b commit 31b7eba

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/parser.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,18 @@ make_parser!(
242242
);
243243

244244
make_parser!(
245-
NameP(input: char) -> Name {
245+
NameP(input: char) -> String {
246246
or(letter(),char('_'))
247-
.with(many(alpha_num().or(char('_'))))
247+
.map(|c| {
248+
let mut result = String::new();
249+
result.push(c);
250+
result
251+
})
252+
.and(many::<String,_>(alpha_num().or(char('_'))))
253+
.map(|(mut f,r)| {
254+
f.push_str(&r);
255+
f
256+
})
248257
.parse_stream(input)
249258
}
250259
);
@@ -304,5 +313,9 @@ mod tests {
304313
#[test]
305314
fn test_parse_name() {
306315
assert_sucessful_parse!(NameP, "_asd", String::from("_asd"));
316+
assert_sucessful_parse!(NameP, "aasd", String::from("aasd"));
317+
assert_sucessful_parse!(NameP, "zasd", String::from("zasd"));
318+
assert_sucessful_parse!(NameP, "Aasd", String::from("Aasd"));
319+
assert_sucessful_parse!(NameP, "Zasd", String::from("Zasd"));
307320
}
308321
}

0 commit comments

Comments
 (0)