From ab2ef7bb765a38489273f90024d4e487f0854106 Mon Sep 17 00:00:00 2001 From: p Date: Thu, 20 Sep 2012 02:59:07 -0700 Subject: [PATCH] few ROPL examples --- examples-ropl/baz.ropl | 11 +++++++++++ examples-ropl/fib.ropl | 31 +++++++++++++++++++++++++++++++ examples-ropl/foo.ropl | 26 ++++++++++++++++++++++++++ examples-ropl/trivial.ropl | 4 ++++ 4 files changed, 72 insertions(+) create mode 100644 examples-ropl/baz.ropl create mode 100644 examples-ropl/fib.ropl create mode 100644 examples-ropl/foo.ropl create mode 100644 examples-ropl/trivial.ropl diff --git a/examples-ropl/baz.ropl b/examples-ropl/baz.ropl new file mode 100644 index 0000000..2412647 --- /dev/null +++ b/examples-ropl/baz.ropl @@ -0,0 +1,11 @@ +fun main(){ + fmt = "%d\n" + x = 1+1+1 +print: + !printf(fmt, x) + x = x+1 + cmp x, 10 + jne print +} + + diff --git a/examples-ropl/fib.ropl b/examples-ropl/fib.ropl new file mode 100644 index 0000000..4b7d36c --- /dev/null +++ b/examples-ropl/fib.ropl @@ -0,0 +1,31 @@ +fun fib(n, out){ + x = 0 + y = 0 + + cmp n, 0 + je copy + cmp n, 1 + je copy + + fib(n-1, @x) + fib(n-2, @y) + + [out] = x+y + jmp exit +copy: + [out] = n +exit: +} + +fun main(){ + fmt = "%d\n" + i = 0 + x = 0 +print: + fib(i, @x) + !printf(fmt, x) + i = i+1 + cmp i, 11 + jne print +} + diff --git a/examples-ropl/foo.ropl b/examples-ropl/foo.ropl new file mode 100644 index 0000000..0fdb599 --- /dev/null +++ b/examples-ropl/foo.ropl @@ -0,0 +1,26 @@ +fun foo(){ + x = 1; +} + +fun main(){ + one = 1 + odd = 0 + even = 0 + i = 0 + n = 10 +sum: + ;foo() + r = i & 1 + cmp r, 1 + je odd + even = even+i + jmp skip +odd: + odd = odd+i +skip: + i = i+1 + cmp i, n + jne sum + total = odd + even +} + diff --git a/examples-ropl/trivial.ropl b/examples-ropl/trivial.ropl new file mode 100644 index 0000000..1803ed3 --- /dev/null +++ b/examples-ropl/trivial.ropl @@ -0,0 +1,4 @@ +fun main(){ + i = 0 +} +