Struct regex_syntax::hir::translate::Translator

source ·
pub struct Translator {
    stack: RefCell<Vec<HirFrame>>,
    flags: Cell<Flags>,
    utf8: bool,
    line_terminator: u8,
}
Expand description

A translator maps abstract syntax to a high level intermediate representation.

A translator may be benefit from reuse. That is, a translator can translate many abstract syntax trees.

A Translator can be configured in more detail via a TranslatorBuilder.

Fields§

§stack: RefCell<Vec<HirFrame>>

Our call stack, but on the heap.

§flags: Cell<Flags>

The current flag settings.

§utf8: bool

Whether we’re allowed to produce HIR that can match arbitrary bytes.

§line_terminator: u8

The line terminator to use for ..

Implementations§

source§

impl Translator

source

pub fn new() -> Translator

Create a new translator using the default configuration.

source

pub fn translate(&mut self, pattern: &str, ast: &Ast) -> Result<Hir, Error>

Translate the given abstract syntax tree (AST) into a high level intermediate representation (HIR).

If there was a problem doing the translation, then an HIR-specific error is returned.

The original pattern string used to produce the Ast must also be provided. The translator does not use the pattern string during any correct translation, but is used for error reporting.

Trait Implementations§

source§

impl Clone for Translator

source§

fn clone(&self) -> Translator

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Translator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.