Advertisement
Guest User

Untitled

a guest
Jan 27th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.53 KB | None | 0 0
  1. extern crate "parser-combinators" as parser;
  2.  
  3. use parser::{Parser, ParserExt};
  4.  
  5. fn main() {
  6. let good_test = "2 + 12 + 22";
  7.  
  8. let integer = parser::spaces().with(
  9. parser::chars1(parser::digit()).map(|s| s.parse::<i32>().unwrap())
  10. );
  11.  
  12. let plus = parser::spaces().with(parser::string("+"));
  13.  
  14. let mut sum = parser::chainl1(integer, plus.map(|str|
  15. Box::new(|&mut: a:i32, b:i32| {a + b}) as Box<FnMut(i32,i32) -> i32>
  16. ));
  17.  
  18. match sum.parse(good_test) {
  19. Ok((value, _)) => println!("Good! {}", value),
  20. Err(err) => println!("{}", err)
  21. };
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement