//! This file implements the function to read a grammar from a string, //! in the [augmented Backus Naur //! form](https://en.wikipedia.org/wiki/Augmented_Backus–Naur_form). //! See [RFC5234](https://www.rfc-editor.org/rfc/rfc5234) for its //! specifications. //! //! In fact, the rules of ABNF are considered to be too strict. For //! example, only ASCII characters are allowed in the format, even //! within comments. I think any character should be allowed within //! comments, so the implementation here does that. use super::*; /// The type of errors encountered during parsing a grammar in the /// ABNF format. See the function [`abnf_to_grammar`] for the parsing /// function. #[derive(Debug, Clone, Copy)] pub enum Error { /// Something invalid has occurred. Invalid, } impl core::fmt::Display for Error { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { Error::Invalid => write!(f, "invalid"), } } } #[allow(unused)] /// This function converts a string to a grammar. pub fn abnf_to_grammar(str: impl AsRef) -> Result { let str = str.as_ref(); todo!() }