#[cfg(feature = "std")]
use std::io::{self, Read};
pub fn parse_str(input: &str) -> Result<crate::OntologyDocument, ParseError> {
let doc = parser::Parser::new(input)?.parse_document()?;
semantic::Converter::default().convert(doc)
}
#[cfg(feature = "std")]
pub fn parse_reader<R: Read>(mut reader: R) -> Result<crate::OntologyDocument, ParseError> {
let mut buf = String::new();
reader
.read_to_string(&mut buf)
.map_err(|e: io::Error| ParseError::InvalidArgument {
message: e.to_string(),
span: ast::Span::default(),
})?;
parse_str(&buf)
}
pub mod ast;
pub mod error;
pub use error::ParseError;
mod lexer;
mod parser;
mod semantic;