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
Say(Expr)
SAY expr
Call
CALL routine [args…]
Do(Box<DoBlock>)
DO block (many variants)
If
IF expr THEN clause [ELSE clause]
Select
SELECT [WHEN expr THEN clause]… [OTHERWISE clause…] END
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
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
impl Clone for ClauseKind
Source§fn clone(&self) -> ClauseKind
fn clone(&self) -> ClauseKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more