Switch from IResult to PResult in syn
diff --git a/src/op.rs b/src/op.rs
index e059929..a044359 100644
--- a/src/op.rs
+++ b/src/op.rs
@@ -77,89 +77,80 @@
#[cfg(feature = "parsing")]
pub mod parsing {
use super::*;
- use synom::{TokenTree, IResult, Synom};
+ use synom::Synom;
use synom::tokens::*;
impl BinOp {
- pub fn parse_binop(input: &[TokenTree]) -> IResult<&[TokenTree], Self> {
- alt! {
- input,
- syn!(AndAnd) => { BinOp::And }
- |
- syn!(OrOr) => { BinOp::Or }
- |
- syn!(Shl) => { BinOp::Shl }
- |
- syn!(Shr) => { BinOp::Shr }
- |
- syn!(EqEq) => { BinOp::Eq }
- |
- syn!(Le) => { BinOp::Le }
- |
- syn!(Ne) => { BinOp::Ne }
- |
- syn!(Ge) => { BinOp::Ge }
- |
- syn!(Add) => { BinOp::Add }
- |
- syn!(Sub) => { BinOp::Sub }
- |
- syn!(Star) => { BinOp::Mul }
- |
- syn!(Div) => { BinOp::Div }
- |
- syn!(Rem) => { BinOp::Rem }
- |
- syn!(Caret) => { BinOp::BitXor }
- |
- syn!(And) => { BinOp::BitAnd }
- |
- syn!(Or) => { BinOp::BitOr }
- |
- syn!(Lt) => { BinOp::Lt }
- |
- syn!(Gt) => { BinOp::Gt }
- }
- }
+ named!(pub parse_binop -> Self, alt!(
+ syn!(AndAnd) => { BinOp::And }
+ |
+ syn!(OrOr) => { BinOp::Or }
+ |
+ syn!(Shl) => { BinOp::Shl }
+ |
+ syn!(Shr) => { BinOp::Shr }
+ |
+ syn!(EqEq) => { BinOp::Eq }
+ |
+ syn!(Le) => { BinOp::Le }
+ |
+ syn!(Ne) => { BinOp::Ne }
+ |
+ syn!(Ge) => { BinOp::Ge }
+ |
+ syn!(Add) => { BinOp::Add }
+ |
+ syn!(Sub) => { BinOp::Sub }
+ |
+ syn!(Star) => { BinOp::Mul }
+ |
+ syn!(Div) => { BinOp::Div }
+ |
+ syn!(Rem) => { BinOp::Rem }
+ |
+ syn!(Caret) => { BinOp::BitXor }
+ |
+ syn!(And) => { BinOp::BitAnd }
+ |
+ syn!(Or) => { BinOp::BitOr }
+ |
+ syn!(Lt) => { BinOp::Lt }
+ |
+ syn!(Gt) => { BinOp::Gt }
+ ));
#[cfg(feature = "full")]
- pub fn parse_assign_op(input: &[TokenTree]) -> IResult<&[TokenTree], Self> {
- alt! {
- input,
- syn!(AddEq) => { BinOp::AddEq }
- |
- syn!(SubEq) => { BinOp::SubEq }
- |
- syn!(MulEq) => { BinOp::MulEq }
- |
- syn!(DivEq) => { BinOp::DivEq }
- |
- syn!(RemEq) => { BinOp::RemEq }
- |
- syn!(CaretEq) => { BinOp::BitXorEq }
- |
- syn!(AndEq) => { BinOp::BitAndEq }
- |
- syn!(OrEq) => { BinOp::BitOrEq }
- |
- syn!(ShlEq) => { BinOp::ShlEq }
- |
- syn!(ShrEq) => { BinOp::ShrEq }
- }
- }
+ named!(pub parse_assign_op -> Self, alt!(
+ syn!(AddEq) => { BinOp::AddEq }
+ |
+ syn!(SubEq) => { BinOp::SubEq }
+ |
+ syn!(MulEq) => { BinOp::MulEq }
+ |
+ syn!(DivEq) => { BinOp::DivEq }
+ |
+ syn!(RemEq) => { BinOp::RemEq }
+ |
+ syn!(CaretEq) => { BinOp::BitXorEq }
+ |
+ syn!(AndEq) => { BinOp::BitAndEq }
+ |
+ syn!(OrEq) => { BinOp::BitOrEq }
+ |
+ syn!(ShlEq) => { BinOp::ShlEq }
+ |
+ syn!(ShrEq) => { BinOp::ShrEq }
+ ));
}
impl Synom for UnOp {
- fn parse(input: &[TokenTree]) -> IResult<&[TokenTree], Self> {
- alt! {
- input,
- syn!(Star) => { UnOp::Deref }
- |
- syn!(Bang) => { UnOp::Not }
- |
- syn!(Sub) => { UnOp::Neg }
- }
- }
+ named!(parse -> Self, alt!(
+ syn!(Star) => { UnOp::Deref }
+ |
+ syn!(Bang) => { UnOp::Not }
+ |
+ syn!(Sub) => { UnOp::Neg }
+ ));
}
}