Sequence trait
This commit is contained in:
10
src/lib.rs
10
src/lib.rs
@@ -39,7 +39,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_sequence() {
|
||||
let parser = sequence(literal("bongo"), sequence(literal(" "), literal("jonzzz")));
|
||||
let parser = seq2(literal("bongo"), seq2(literal(" "), literal("jonzzz")));
|
||||
let output = parser.parse("bongo jonzzz").unwrap();
|
||||
assert_eq!(output.0 .0, "bongo");
|
||||
assert_eq!(output.0 .1, (" ", "jonzzz"));
|
||||
@@ -61,7 +61,7 @@ mod tests {
|
||||
#[test]
|
||||
fn test_map() {
|
||||
let parser = map(
|
||||
sequence(literal("a"), literal("b")),
|
||||
seq2(literal("a"), literal("b")),
|
||||
|(_a, _b): (&str, &str)| 59,
|
||||
);
|
||||
let output = parser.parse("abcd").unwrap();
|
||||
@@ -70,16 +70,16 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_combinators() {
|
||||
let parser = sequence(map(repeated(literal_char('a')), |_| 10), literal_char('b'));
|
||||
let parser = seq2(map(repeated(literal_char('a')), |_| 10), literal_char('b'));
|
||||
let output = parser.parse("aaaaaaaabcd").unwrap();
|
||||
assert_eq! {((10, 'b'), "cd"), output};
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_optional() {
|
||||
let parser = sequence(
|
||||
let parser = seq2(
|
||||
optional(literal("alpha")),
|
||||
sequence(repeated(literal(" ")), literal("beta")),
|
||||
seq2(repeated(literal(" ")), literal("beta")),
|
||||
);
|
||||
|
||||
let output1 = parser.parse(" beta").unwrap();
|
||||
|
||||
Reference in New Issue
Block a user