Adds an else-if branch after a previous si branch.
Aliases: else if
Syntax: sin <condition> <block>
Category
control-flow
Related
Examples
examples/corpus/si/sin.fab (canonical · keyword)
Adds an else-if branch after a previous si branch.
# si-sin-secus (poetic if-else-if chain)
#
# si <cond> { }
# sin <cond> { }
# secus { }
#
# GRAMMAR:
# ifStmt :← 'si' expr block ('sin' expr block)* ('secus' block)?
#
# EXPECTED OUTPUT:
# Afternoon (hour=14 matches first sin branch).
incipit {
fixum _ hour ← 14
si hour < 6 {
nota "Late night"
}
sin hour < 12 {
nota "Morning"
}
sin hour < 18 {
# 14 ≥ 12 and 14 < 18
nota "Afternoon"
}
sin hour < 22 {
nota "Evening"
}
secus {
nota "Night"
}
}Expected output:
Afternoon
examples/corpus/sin/sin.fab (canonical · keyword)
Adds an else-if branch after a previous si branch.
# sin — else-if branch
#
# GRAMMAR:
# elseIfClause :← 'sin' expr block
#
# EXPECTED OUTPUT:
# Scalar stdout smoke (see body).
#
# BACKEND:
# Cross-ref: si/sin.fab.
#
incipit {
fixum _ score ← 85
si score ≥ 90 {
nota "excellent"
}
sin score ≥ 80 {
nota "good"
}
secus {
nota "needs work"
}
}Expected output:
good