Skip to main content

ClauseKind

Enum ClauseKind 

Source
pub enum ClauseKind {
Show 25 variants Label(String), Assignment { target: AssignTarget, expr: Expr, }, Say(Expr), Call { name: String, args: Vec<Expr>, }, Do(Box<DoBlock>), If { condition: Expr, then_clause: Box<Clause>, else_clause: Option<Box<Clause>>, }, Select { when_clauses: Vec<(Expr, Vec<Clause>)>, otherwise: Option<Vec<Clause>>, }, Return(Option<Expr>), Exit(Option<Expr>), Iterate(Option<String>), Leave(Option<String>), Nop, Parse { upper: bool, source: ParseSource, template: ParseTemplate, }, Signal(SignalAction), Numeric(NumericSetting), Address(AddressAction), Drop(Vec<String>), Procedure(Option<Vec<String>>), Push(Option<Expr>), Pull(Option<ParseTemplate>), Queue(Option<Expr>), Trace(Expr), Interpret(Expr), Arg(ParseTemplate), Command(Expr),
}

Variants§

§

Label(String)

A label (e.g., myLabel:)

§

Assignment

Variable assignment: symbol = expr

Fields

§expr: Expr
§

Say(Expr)

SAY expr

§

Call

CALL routine [args…]

Fields

§name: String
§args: Vec<Expr>
§

Do(Box<DoBlock>)

DO block (many variants)

§

If

IF expr THEN clause [ELSE clause]

Fields

§condition: Expr
§then_clause: Box<Clause>
§else_clause: Option<Box<Clause>>
§

Select

SELECT [WHEN expr THEN clause]… [OTHERWISE clause…] END

Fields

§when_clauses: Vec<(Expr, Vec<Clause>)>
§otherwise: Option<Vec<Clause>>
§

Return(Option<Expr>)

RETURN [expr]

§

Exit(Option<Expr>)

EXIT [expr]

§

Iterate(Option<String>)

ITERATE [name]

§

Leave(Option<String>)

LEAVE [name]

§

Nop

NOP

§

Parse

PARSE [UPPER] source template

Fields

§upper: bool
§template: ParseTemplate
§

Signal(SignalAction)

SIGNAL label | SIGNAL ON condition | SIGNAL OFF condition

§

Numeric(NumericSetting)

NUMERIC DIGITS [expr] | NUMERIC FORM … | NUMERIC FUZZ [expr]

§

Address(AddressAction)

ADDRESS environment [command] | ADDRESS [VALUE] expr

§

Drop(Vec<String>)

DROP name [name…]

§

Procedure(Option<Vec<String>>)

PROCEDURE [EXPOSE name [name…]]

§

Push(Option<Expr>)

PUSH [expr] — push onto external data queue

§

Pull(Option<ParseTemplate>)

PULL [template] — pull from queue or stdin, uppercase

§

Queue(Option<Expr>)

QUEUE [expr] — queue onto external data queue

§

Trace(Expr)

TRACE setting

§

Interpret(Expr)

INTERPRET expr

§

Arg(ParseTemplate)

ARG template — shorthand for PARSE UPPER ARG template

§

Command(Expr)

A command clause: expression evaluated and sent to current environment

Trait Implementations§

Source§

impl Clone for ClauseKind

Source§

fn clone(&self) -> ClauseKind

Returns a duplicate 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 ClauseKind

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V