internal/codegen/statements
Types
pub type ComparisonOperator {
Lt
Lte
Eq
Neq
Gt
Gte
}
Constructors
-
Lt -
Lte -
Eq -
Neq -
Gt -
Gte
Direct is a string that will be in the generated code, verbatim.
pub type GleamStatement {
NilVal
IntVal(value: Int)
ListVal(items: List(GleamStatement))
StringVal(string: String)
TupleVal(items: List(GleamStatement))
VariantVal(name: String, fields: List(GleamStatement))
VarPrimitive(name: String)
Comparison(GleamStatement, ComparisonOperator, GleamStatement)
CaseStatement(
guards: List(GleamStatement),
clauses: List(Clause),
)
Function(
name: String,
arguments: List(Argument),
statements: List(GleamStatement),
)
FunctionCall(name: String, arguments: List(GleamStatement))
UseArg(arg: GleamStatement)
LetVar(pattern: Pattern, statement: GleamStatement)
LetArray(patterns: List(Pattern), array: GleamStatement)
LetTuple(patterns: List(Pattern), tuple: GleamStatement)
Multiply(terms: List(GleamStatement))
Direct(string: String)
}
Constructors
-
NilVal -
IntVal(value: Int) -
ListVal(items: List(GleamStatement)) -
StringVal(string: String) -
TupleVal(items: List(GleamStatement)) -
VariantVal(name: String, fields: List(GleamStatement)) -
VarPrimitive(name: String) -
Comparison(GleamStatement, ComparisonOperator, GleamStatement) -
CaseStatement( guards: List(GleamStatement), clauses: List(Clause), ) -
Function( name: String, arguments: List(Argument), statements: List(GleamStatement), ) -
FunctionCall(name: String, arguments: List(GleamStatement)) -
UseArg(arg: GleamStatement) -
LetVar(pattern: Pattern, statement: GleamStatement) -
LetArray(patterns: List(Pattern), array: GleamStatement) -
LetTuple(patterns: List(Pattern), tuple: GleamStatement) -
Multiply(terms: List(GleamStatement)) -
Direct(string: String)
Functions
pub fn arg_untyped(name: String) -> Argument
pub fn case_stmt(
guards: List(GleamStatement),
clauses: List(Clause),
) -> GleamStatement
pub fn compare(
stmt1: GleamStatement,
comp_op: ComparisonOperator,
stmt2: GleamStatement,
) -> GleamStatement
pub fn function(
name: String,
arguments: List(Argument),
statements: List(GleamStatement),
) -> GleamStatement
pub fn let_array(
patterns: List(Pattern),
array: GleamStatement,
) -> GleamStatement
TODO: Needs middle argument Option(Pattern) for ..tail
pub fn literal(lit: String) -> Pattern
a constant patter, such as True or 42 (represented as a string, for now)
pub fn name_of_var(var: GleamStatement) -> String
pub fn underscore() -> Pattern
pub fn unused_var(name: String) -> Pattern
name: variable name without the underscore, it will be prepended when generating code
pub fn var_pattern(var: String) -> Pattern