Renderingla

elige

Starts a value-based branch statement.

Aliases: switch, choose

Syntax: elige <expression> <block>

Category

control-flow

Related

Examples

examples/corpus/elige/elige.fab (canonical · keyword)

Starts a value-based branch statement.

# elige — switch on a value
#
# elige <expr> {
#     casu <value> { <body> }
#     ceterum { <body> }
# }
#
# GRAMMAR:
#   eligeStmt :← 'elige' expr '{' casuClause* '}'
#
# EXPECTED OUTPUT:
#   elige.expected

incipit {
    # Text matching
    fixum _ condicio ← "agens"

    elige condicio {
        casu "pendens" {
            nota "exspectat..."
        }
        casu "agens" {
            nota "currit"
        }
        casu "perfectum" {
            nota "perfectum"
        }
    }

    # Numerus matching
    fixum _ codex ← 200

    elige codex {
        casu 200 {
            nota "Recte"
        }
        casu 404 {
            nota "non inventum"
        }
        casu 500 {
            nota "error ministri"
        }
    }

    # Multiple statements per case
    fixum _ modus ← "opera"

    elige modus {
        casu "labor" {
            nota "modus laboris"
            nota "verba multa"
        }
        casu "opera" {
            nota "modus operis"
            nota "opera parata"
        }
    }
}

Expected output:

currit
Recte
modus operis
opera parata