FromSexpWrapper

Struct FromSexpWrapper 

Source
pub struct FromSexpWrapper<T: Types, Parser> {
    pub parser: Parser,
    pub _phantom: PhantomData<T>,
    scopes: Vec<IndexSet<String>>,
}

Fields§

§parser: Parser§_phantom: PhantomData<T>§scopes: Vec<IndexSet<String>>

Implementations§

Source§

impl<T, Parser: FromSexp<T>> FromSexpWrapper<T, Parser>
where T: Types,

Source

fn parse_bv_size(&self, sexp: &Sexp) -> Result<Sort<T>, ParseError>

Source

pub fn parse_name(&self, sexp: &Sexp) -> Result<T::Var, ParseError>

Source

pub fn parse_bind(&mut self, sexp: &Sexp) -> Result<Bind<T>, ParseError>

Source

fn parse_pred_inner(&mut self, sexp: &Sexp) -> Result<Pred<T>, ParseError>

Source

pub fn parse_kvar(&self, sexp: &Sexp) -> Result<Pred<T>, ParseError>

Source

fn parse_expr_possibly_nested( &mut self, sexp: &Sexp, ) -> Result<Expr<T>, ParseError>

Source

fn parse_is_ctor( &mut self, ctor_name: &str, arg: &Sexp, ) -> Result<Expr<T>, ParseError>

Source

pub fn parse_expr(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_neg(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_not(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_iff(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_imp(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_and(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_or(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_atom(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_app(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_binary_op(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_exists(&mut self, items: &[Sexp]) -> Result<Expr<T>, ParseError>

Source

fn parse_let(&mut self, sexp: &Sexp) -> Result<Expr<T>, ParseError>

Source

fn parse_list_sort(&self, sexp: &Sexp) -> Result<Sort<T>, ParseError>

Source

pub fn parse_sort(&self, sexp: &Sexp) -> Result<Sort<T>, ParseError>

Source

fn parse_func_sort(&self, items: &[Sexp]) -> Result<Sort<T>, ParseError>

Source

pub fn parse_solution( &mut self, sexp: &Sexp, ) -> Result<(Vec<Sort<T>>, Expr<T>), ParseError>

Source

fn push_scope(&mut self, names: &[String])

Source

fn pop_scope(&mut self)

Source

fn parse_bound_var(&self, name: &str) -> Option<Expr<T>>

Auto Trait Implementations§

§

impl<T, Parser> Freeze for FromSexpWrapper<T, Parser>
where Parser: Freeze,

§

impl<T, Parser> RefUnwindSafe for FromSexpWrapper<T, Parser>
where Parser: RefUnwindSafe, T: RefUnwindSafe,

§

impl<T, Parser> Send for FromSexpWrapper<T, Parser>
where Parser: Send, T: Send,

§

impl<T, Parser> Sync for FromSexpWrapper<T, Parser>
where Parser: Sync, T: Sync,

§

impl<T, Parser> Unpin for FromSexpWrapper<T, Parser>
where Parser: Unpin, T: Unpin,

§

impl<T, Parser> UnwindSafe for FromSexpWrapper<T, Parser>
where Parser: UnwindSafe, T: UnwindSafe,

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. 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.