macro_rules! peek {
($i:expr, $submac:ident!( $($args:tt)* )) => { ... };
($i:expr, $f:expr) => { ... };
}Expand description
Parse a value without consuming it from the input data.
- Syntax:
peek!(THING) - Output:
THING
extern crate syn;
#[macro_use] extern crate synom;
use syn::Expr;
use syn::parse::{ident, expr};
use synom::IResult;
// Parse an expression that begins with an identifier.
named!(ident_expr -> Expr,
preceded!(peek!(ident), expr)
);
fn main() {
// begins with an identifier
let input = "banana + 1";
let parsed = ident_expr(input).expect("ident");
println!("{:?}", parsed);
// does not begin with an identifier
let input = "1 + banana";
let err = ident_expr(input);
assert_eq!(err, IResult::Error);
}