examples/basics/03_statement_separators.cat
# Exemples : Séparateurs de Statements
# =======================================
# Démontre l'utilisation des newlines et semicolons

# ▸ Newlines comme séparateurs (recommandé)
x = 1
y = 2
z = x + y
print("Newlines:", z)  # 3

# ▸ Semicolons comme séparateurs (inline)
a = 10; b = 20; c = a + b
print("Semicolons:", c)  # 30

# ▸ Mix newlines et semicolons
p = 5; q = 3
r = p * q
print("Mix:", r)  # 15

# ▸ Newlines multiples (ignorées)
first = 100


second = 200
print("Multiple newlines:", first + second)  # 300

# ▸ Semicolon suivi de newline
value = { 42 };
next = value + 1
print("Semicolon + newline:", next)  # 43

# ▸ Newlines dans arguments (ignorées)
result = max(
    10,
    20,
    30,
    5
)
print("Multiline args:", result)  # 30

# ▸ Newlines dans listes (ignorées)
values = list(
    1,
    2,
    3,
    4
)
print("Multiline list:", values)  # [1, 2, 3, 4]

# ▸ Newlines dans blocs
compute = {
    temp = 10 * 2
    final = temp + 5
    final
}
print("Block with newlines:", compute)  # 25

# ▸ if/else multiligne
check = if True {
    100
}
else {
    0
}
print("if/else multiline:", check)  # 100

# ▸ Appels chaînés (newlines entre statements)
make_adder = (n) => { (m) => { n + m } }
add5 = make_adder(5)
result_chained = add5(3)
print("Chained calls:", result_chained)  # 8

# ▸ For-loop avec newlines
total = 0
for i in range(1, 6) {
    total = total + i
}
print("For loop total:", total)  # 15

# ▸ Statements complexes avec mix
data = list(1, 2, 3); sum_val = 0
for val in data {
    sum_val = sum_val + val
}
print("Complex mix:", sum_val)  # 6