generalize parsing to allow extensions to add arbitrary syntax; add 'proc' keyword to introduce a routine.

This commit is contained in:
2020-09-30 23:16:22 +02:00
parent d47d0f2345
commit 4be5b4e05b
18 changed files with 147 additions and 138 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
(
(main
(proc main
(call fac 5)
(ld r0 res0)
(halt)
)
(fac
(proc fac
(cmp arg0 2
(eq? (ret 2)))
(sub r0 arg0 1)
+9 -13
View File
@@ -1,10 +1,10 @@
; Set log level to "info" or above for the best results!
(
(main
(proc main
(sc-init 800 600)
(sc-opt 1 0) ; auto blit
(sc-opt 2 60) ; frame rate
(sc-opt 1 1) ; auto blit
(sc-opt 2 25) ; frame rate
(ld r0 5) ; x
(ld r1 0) ; y
@@ -15,16 +15,12 @@
(ld r5 0x3300ff)
(:loop)
(add r5 0x000001)
(and r5 0xffffff)
(sc-px r0 r1 r5)
(add r0 r2)
(add r1 r3)
(cmp r0 799 (eq? (ld r2 -1)))
(cmp r0 0 (eq? (ld r2 1)))
(cmp r1 599 (eq? (ld r3 -1)))
(cmp r1 0 (eq? (ld r3 1)))
(sc-blit 0)
(add r5 0x000001)
(sc-px r0 r1 r5)
(add r0 r2)
(add r1 r3)
(cmp r0 799 (eq? (ld r2 -1)) (ne? (cmp r0 0 (eq? (ld r2 1)))))
(cmp r1 599 (eq? (ld r3 -1)) (ne? (cmp r1 0 (eq? (ld r3 1)))))
(j :loop)
)
)