pine

The pine programming language.


pine

/

examples

/

factorial.pn

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
# Pine factorial
# dbg lne on

mov s 'done'
mov ec 0

lbl main
  run input
  run factorial
  run print
  run success

lbl input
  mov fac 0
  mov zero 0
  mov q 'factorial calculator'

  prt q
  ask fac
  cmp fac zero
  jle error
  psh fac
ret

lbl factorial
  mov inc 1
  mov index 1
  mov res 1
  mov fac 0
  pop fac

  lbl loop
  cmp index fac
  jgt end
  mlt res index
  add index inc
  jmp loop
  lbl end
  psh res
ret

lbl print
  mov res '> '
  mov val ''
  pop val

  add res val
  prt res
ret

lbl success
  # prt s
  ext ec

lbl error
  mov s 'error: num must be > 0'
  mov ec 1

  prt s
  ext ec

Back to Top