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