generalize parsing to allow extensions to add arbitrary syntax; add 'proc' keyword to introduce a routine.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user