tamer: xir::parse::ele: Remaining Display::fmt for nonterminals

The following commit (test tracing) requires non-panicing `Display` and
`Debug` values.

DEV-7145
main
Mike Gerwitz 2022-07-18 14:31:42 -04:00
parent cf2cd882ca
commit 2f4c20dac8
2 changed files with 16 additions and 4 deletions

View File

@ -30,10 +30,17 @@ pub type XmlAttrList = AndQualConjList<"attribute", "attributes", Tt<XmlAttr>>;
/// Opening tag for XML element.
pub type OpenXmlEle = Delim<"<", ">", Raw>;
/// Opening tag for XML element.
pub type CloseXmlEle = Delim<"</", ">", Raw>;
/// Opening tag for XML element as teletypewriter
/// (for use in sentences).
pub type TtOpenXmlEle = Tt<OpenXmlEle>;
/// Closing tag for XML element as teletypewriter
/// (for use in sentences).
pub type TtCloseXmlEle = Tt<CloseXmlEle>;
/// A choice of a list of opening XML tags.
pub type OpenEleSumList =
OrQualConjList<"element", "one of elements", TtOpenXmlEle>;

View File

@ -184,7 +184,7 @@ macro_rules! ele_parse {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
use crate::{
fmt::{DisplayWrapper, TtQuote},
xir::fmt::TtOpenXmlEle,
xir::fmt::{TtOpenXmlEle, TtCloseXmlEle},
};
match self {
@ -193,7 +193,8 @@ macro_rules! ele_parse {
"expecting opening tag {}",
TtOpenXmlEle::wrap($qname),
),
Self::RecoverEleIgnore_(name, ..) => write!(
Self::RecoverEleIgnore_(name, ..)
| Self::RecoverEleIgnoreClosed_(name, ..) => write!(
f,
"attempting to recover by ignoring element \
with unexpected name {given} \
@ -202,7 +203,12 @@ macro_rules! ele_parse {
expected = TtQuote::wrap($qname),
),
Self::Attrs_(sa) => todo!("Attrs_ Display: {sa:?}"),
Self::Attrs_(sa) => std::fmt::Display::fmt(sa, f),
Self::ExpectClose_(_) => write!(
f,
"expecting closing element {}",
TtCloseXmlEle::wrap($qname)
),
Self::Closed_(_) => write!(
f,
"element {} closed",
@ -211,7 +217,6 @@ macro_rules! ele_parse {
$(
Self::$ntref(st) => std::fmt::Display::fmt(st, f),
)*
todo => todo!("other Display: {todo:?}"),
}
}
}