Starts a conditional branch that runs when its condition is true.
Aliases: if
Syntax: si <condition> <block>
Category
control-flow
Related
Examples
examples/corpus/si/nidificatus.fab (canonical · keyword)
Starts a conditional branch that runs when its condition is true.
# Nested si (if) conditionals
#
# si <cond> { <body> } -- inner branch inside outer arm
# secus { <body> }
#
# GRAMMAR:
# ifStmt :← 'si' expr block ('secus' block)?
#
# EXPECTED OUTPUT:
# Access granted when intravit and licet are both verum.
incipit {
# logged in
fixum _ intravit ← verum
# has permission
fixum _ licet ← verum
si intravit {
# Inner branch: permission check after login succeeds
si licet {
nota "Access granted"
}
secus {
nota "Permission denied"
}
}
secus {
# outer else: not logged in
nota "Please log in"
}
}Expected output:
Access granted
examples/corpus/si/si.fab (canonical · keyword)
Starts a conditional branch that runs when its condition is true.
# Basic si (if) conditionals
#
# si <condition> { <body> } -- truthy branch
#
# GRAMMAR:
# ifStmt :← 'si' expr block
#
# EXPECTED OUTPUT:
# x maior quam 5, Adult, Can vote (si.expected).
incipit {
# Simple truthy branch — only the first condition matches
fixum _ x ← 10
si x > 5 {
nota "x maior quam 5"
}
si x > 20 {
# skipped: 10 ≯ 20
nota "x maior quam 20"
}
# Block body: multiple statements run together when condition holds
fixum _ aetas ← 25
si aetas ≥ 18 {
nota "Adult"
nota "Can vote"
}
}Expected output:
x maior quam 5
Adult
Can vote