mirror of
https://github.com/hanzo-fi/numscript.git
synced 2026-10-30 20:54:52 +00:00
41 lines
930 B
Go
41 lines
930 B
Go
package builder
|
|
|
|
type Statement render
|
|
|
|
// A bounded send statement
|
|
func StmtSend(
|
|
monetary Expression[ExprTypeMonetary],
|
|
source Source,
|
|
destination Destination,
|
|
) Statement {
|
|
return func(env *env, w int) {
|
|
env.builder.WriteString("send ")
|
|
monetary(env, 0)
|
|
env.builder.WriteString(" (")
|
|
env.builder.WriteString("\n source = ")
|
|
source(env, w+1)
|
|
env.builder.WriteString("\n destination = ")
|
|
destination(env, w+1)
|
|
env.builder.WriteString("\n)")
|
|
}
|
|
}
|
|
|
|
// An unbounded send statement
|
|
func StmtSendAll(
|
|
asset Expression[ExprTypeAsset],
|
|
source Source,
|
|
destination Destination,
|
|
) Statement {
|
|
return func(env *env, w int) {
|
|
env.builder.WriteString("send [")
|
|
asset(env, 0)
|
|
env.builder.WriteString(" *]")
|
|
env.builder.WriteString(" (")
|
|
env.builder.WriteString("\n source = ")
|
|
source(env, w+1)
|
|
env.builder.WriteString("\n destination = ")
|
|
destination(env, w+1)
|
|
env.builder.WriteString("\n)")
|
|
}
|
|
}
|