A Pliant nyelv

Alapvető vezérlési szerkezetek

Értékadás, üres utasítás

var type name # üres utasítás
var Int i


var type name := value # értékadás
var Int i := 7

Szekvencia

Példa:

var Int i := 3
i := i+2
console i eol

If/eif/else

if condition1
  instructions1
[eif condition2
  instructions2]
[eif condition3
  instructions3]
...
[else
  instruction4]

Az „eif” and „else” részek opcionálisak.

Példa:

var Int i
if i=0
  console "i is zero" eol
eif i=1
  console "i is is one" eol
else
  console "i is plural" eol

While

while condition
  instructions


Példa:

var Int i := 5
while i>1
  console "i = " i eol
  i := i\2

For

for variable start limit [step step]
  instructions

A "step" paraméter opcionális.

Példa:

for (var Int i) 0 5
  console "i = " i eol

Shunt

shunt condition1 result1 [condition2 result2]

Példa:

function abs x -> y
  arg Int x y
  y := shunt x>=0 x -x
A "shunt" ekvivalens a C/C++ "felt ? ut1 : ut2" konstrukciójával.

Part

part name
  body

A body-ban használható a : leave name vagy a restart name utasítás.

A leave a C/C++ break, a restart pedig a continue utasításával ekvivalens.

Példa:

function search_ab s -> position
  arg Str s ; arg Int position
  part search_a
    for (var Int i) 0 s:len-1
      if s:i="a"
        leave search_a
    return -1
  part search_b
    for (var Int j) i s:len-1
      if s:j="b"
        leave search_b
    return -1
  position := j
console (search_ab "0123a56b89") eol

Vezérlésátadó utasítások

Kidolgozásra vár.