Skip to main content

Lexer

Struct Lexer 

Source
pub struct Lexer<'a> { /* private fields */ }
Expand description

XPath 1.0 expression tokenizer.

The lexer processes an XPath expression string and produces a sequence of Tokens. It handles the disambiguation rules from XPath 1.0 section 3.7 to correctly distinguish between operators and name tests for *, and between function names, node type tests, axis names, and plain name tests.

§Examples

use xmloxide::xpath::lexer::Lexer;

let mut lexer = Lexer::new("child::p[@class='intro']");
let tokens = lexer.tokenize().unwrap();

Implementations§

Source§

impl<'a> Lexer<'a>

Source

pub fn new(input: &'a str) -> Self

Creates a new lexer for the given XPath expression string.

Source

pub fn tokenize(&mut self) -> Result<Vec<Token>, XPathError>

Tokenizes the entire input expression into a sequence of tokens.

Applies the XPath 1.0 disambiguation rules (section 3.7) to correctly classify tokens based on their context.

§Errors

Returns XPathError if the input contains an invalid token, such as an unterminated string literal or an unexpected character.

Auto Trait Implementations§

§

impl<'a> Freeze for Lexer<'a>

§

impl<'a> RefUnwindSafe for Lexer<'a>

§

impl<'a> Send for Lexer<'a>

§

impl<'a> Sync for Lexer<'a>

§

impl<'a> Unpin for Lexer<'a>

§

impl<'a> UnsafeUnpin for Lexer<'a>

§

impl<'a> UnwindSafe for Lexer<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.