﻿global
    A ∈ Z
B∈R
endglobal

func _ffgg' () = //x , bool ) =
ret
endfunc

//func f
//ret
//endfunc

func _f'()= //A //+
ret
endfunc

func fff(a∈Z, b∈R)∈Z=
auto
  ifb ∈ bool
endauto
//B←f()
 // do f(A)

    B←-0.1
    B←b
    goto |aaa
    if ifb goto |aaa

    do fff(a,0.1) // test this!

    //A←fff(a,0.1)
|aaa
    A←123 //123.0
    //A ←A + 123
    //A ←A + 123 + 456
endfunc

func f(x ∈ Z, y ∈ R) ∈ R =
    auto
        a ∈ Z
        b ∈ bool
        r ∈ R
ch  ∈ char
    endauto

ch ← d()

//if Y goto |lbl
//if b goto |lbl//goto |lbl

//r←-456.0 + -123.0
//r ← 1^2 //test type checking error
    //r ← 1 + z
  //  r ← 0.0 + B
   do g(a, Y, x, -1.0)
   //do g(a, b, x, y)
  //  r ← x + y
 //   r ← 123 + 456
//    r ← x + 111
//    r ← 222 + y
    ret r
    ret 123.0 //123
endfunc
    

    func     g    (a ∈ Z,b ∈ bool,  x ∈ Z,y∈R)    =
    //do g(a, 1.0, x, y)
       do g(a, b, x, y)
endfunc     
func d() ∈ char =
    ret `a`
endfunc
aaa bbb ccc
func e() =
    ret
endfunc

func main()=
//do End()
|mainloop
do DoEvents()
do Clear()
do Present()
if N goto |mainloop
endfunc