use xee_name::VariableNames;
use crate::ast;
use crate::{Namespaces, ParserError};
#[derive(Debug, Default)]
pub struct XPathParserContext {
pub namespaces: Namespaces,
pub variable_names: VariableNames,
}
impl XPathParserContext {
pub fn new(namespaces: Namespaces, variable_names: VariableNames) -> Self {
Self {
namespaces,
variable_names,
}
}
pub fn parse_xpath(&self, s: &str) -> Result<ast::XPath, ParserError> {
ast::XPath::parse(s, &self.namespaces, &self.variable_names)
}
pub fn parse_pattern(&self, s: &str) -> Result<crate::Pattern<ast::ExprS>, ParserError> {
crate::Pattern::parse(s, &self.namespaces, &self.variable_names)
}
pub fn parse_value_template_xpath(&self, s: &str) -> Result<ast::XPath, ParserError> {
ast::XPath::parse_value_template(s, &self.namespaces, &self.variable_names)
}
}