[go: up one dir, main page]

nom 2.2.1

A byte-oriented, zero-copy, parser combinators library
Documentation
#[macro_use]
extern crate nom;

use nom::{IResult,alphanumeric,eol};

use std::str;

named!(end_of_line, alt!(eof!() | eol));
named!(read_line <&str>, map_res!(
  terminated!(alphanumeric, end_of_line),
  str::from_utf8
));
named!(read_lines <Vec<&str> >, many0!(read_line));

#[test]
fn read_lines_test() {
  let res = IResult::Done(&b""[..], vec!["Duck", "Dog", "Cow"]);

  assert_eq!(read_lines(&b"Duck\nDog\nCow\n"[..]), res);
  assert_eq!(read_lines(&b"Duck\nDog\nCow"[..]),   res);
}