macro_rules! create_parser_error {
($parser_state:expr) => {
crate::parser::error::parse_err(
$parser_state,
throw_site!(),
Option::<String>::None,
Option::<crate::parser::error::ParseError>::None,
)
};
($parser_state:expr, $msg:expr) => {
crate::parser::error::parse_err(
$parser_state,
throw_site!(),
Some($msg),
Option::<crate::parser::error::ParseError>::None,
)
};
($parser_state:expr, $fmt:expr, $($arg:expr),+) => {
crate::parser::error::parse_err(
$parser_state,
throw_site!(),
Some(format!($fmt, $($arg),+)),
Option::<crate::parser::error::ParseError>::None,
)
};
}
macro_rules! expect {
($iter:expr, $c:expr) => {
$iter.expect($c, throw_site!())
};
}
macro_rules! parse_err {
($iter:expr) => { Err(create_parser_error!(&$iter.st)) };
($iter:expr, $msg:expr) => { Err(create_parser_error!(&$iter.st, $msg) ) };
($iter:expr, $fmt:expr, $($arg:expr),+) => {
Err(create_parser_error!(&$iter.st, $fmt, $($arg),+))
};
}
macro_rules! from_xe {
($iter:expr, $xdoc_error:expr) => {{
create_parser_error!(&$iter.st, "{}", $xdoc_error)
}};
}