##// END OF EJS Templates
Use flex in html
Use flex in html

File last commit:

r10:a65783dd default
r10:a65783dd default
Show More
intrinsics.ps
299 lines | 5.7 KiB | application/postscript | PostScriptLexer
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
(in-package sugar-qsp)
Tutorial game works!
r6 ;;;; Functions and procedures defined by the QSP language.
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 ;;;; They can call api and deal with locations and other data directly.
;;;; Except vars. Use VAR and SET or GET-VAR and SET-VAR api calls.
Tutorial game works!
r6 (setf (root lib) (ps:create))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 1loc
Tutorial game works!
r6 (defm (root lib goto) (target &rest args)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call clear-text :main)
Tutorial game works!
r6 (apply (root lib xgoto) target args))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib xgoto) (target &rest args)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call clear-act)
(api-call init-args args)
(setf (root current-location) target)
Use flex in html
r10 (api-call stash-state)
Tutorial game works!
r6 (funcall (ps:getprop (root locations) (ps:chain target (to-upper-case)))))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 2var
Tutorial game works!
r6 (defm (root lib killvar) (varname &optional (index :whole))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call kill-var varname index))
Tutorial game works!
r6 (defm (root lib killall) ()
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call kill-all))
;;; 3expr
Tutorial game works!
r6 (defm (root lib obj) (name)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (funcall (root objs includes) name))
Tutorial game works!
r6 (defm (root lib loc) ()
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (funcall (root locations includes) name))
Tutorial game works!
r6 (defm (root lib no) (arg)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (- -1 arg))
;;; 4code
Tutorial game works!
r6 (defm (root lib qspver) ()
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 "0.0.1")
Tutorial game works!
r6 (defm (root lib curloc) ()
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (root current-location))
Tutorial game works!
r6 (defm (root lib rand) (a b)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (let ((min (min a b))
(max (max a b)))
(+ min (ps:chain *math (random (- max min))))))
Tutorial game works!
r6 (defm (root lib rnd) ()
(funcall (root lib rand) 1 1000))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib qspmax) (&rest args)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (apply (ps:@ *math max) args))
Tutorial game works!
r6 (defm (root lib qspmin) (&rest args)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (apply (ps:@ *math min) args))
;;; 5arrays
Tutorial game works!
r6 (defm (root lib copyarr) (to from start count)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (ps:for ((i start))
((< i (min (api-call array-size from)
(+ start count))))
((incf i))
(api-call set-var to (+ start i)
(api-call get-var from (+ start i)))))
Tutorial game works!
r6 (defm (root lib arrsize) (name)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call array-size name))
Tutorial game works!
r6 (defm (root lib arrpos) (name value &optional (start 0))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (ps:for ((i start)) ((< i (api-call array-size name))) ((incf i))
(when (eq (api-call get-var name i) value)
(return i)))
-1)
Tutorial game works!
r6 (defm (root lib arrcomp) (name pattern &optional (start 0))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (ps:for ((i start)) ((< i (api-call array-size name))) ((incf i))
(when (funcall (ps:getprop (api-call get-var name i) 'match) pattern)
(return i)))
-1)
;;; 6str
Tutorial game works!
r6 (defm (root lib len) (s)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (length s))
Tutorial game works!
r6 (defm (root lib mid) (s from &optional count)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (s.substring from count))
Tutorial game works!
r6 (defm (root lib ucase) (s)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (s.to-upper-case))
Tutorial game works!
r6 (defm (root lib lcase) (s)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (s.to-lower-case))
Tutorial game works!
r6 (defm (root lib trim) (s)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (s.trim))
Tutorial game works!
r6 (defm (root lib replace) (s from to)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (s.replace from to))
Tutorial game works!
r6 (defm (root lib instr) (s subs &optional (start 1))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (+ start (ps:chain s (substring (- start 1)) (search subs))))
Tutorial game works!
r6 (defm (root lib isnum) (s)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (if (is-na-n s)
0
-1))
Tutorial game works!
r6 (defm (root lib val) (s)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (parse-int s 10))
Tutorial game works!
r6 (defm (root lib qspstr) (n)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (+ "" n))
Tutorial game works!
r6 (defm (root lib strcomp) (s pattern)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (if (s.match pattern)
-1
0))
Tutorial game works!
r6 (defm (root lib strfind) (s pattern group)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (let* ((re (ps:new (*reg-exp pattern)))
(match (re.exec s)))
(match.group group)))
Tutorial game works!
r6 (defm (root lib strpos) (s pattern &optional (group 0))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (let* ((re (ps:new (*reg-exp pattern)))
(match (re.exec s))
(found (match.group group)))
(if found
(s.search found)
0)))
;;; 7if
Tutorial game works!
r6 (defm (root lib iif) (cond-expr then-expr else-expr)
(if (= -1 cond-expr) then-expr else-expr))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 8sub
Tutorial game works!
r6 (defm (root lib gosub) (target &rest args)
Use flex in html
r10 (conserving-vars (args result)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call init-args args)
(funcall (ps:getprop (root locations) target))
(values)))
Tutorial game works!
r6 (defm (root lib func) (target &rest args)
Use flex in html
r10 (conserving-vars (args result)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call init-args args)
(funcall (ps:getprop (root locations) target))
(api-call get-result)))
;;; 9loops
;;; 10dynamic
Tutorial game works!
r6 (defm (root lib dyneval) (block &rest args)
Use flex in html
r10 (conserving-vars (args result)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call init-args args)
(funcall block)
(api-call get-result)))
Tutorial game works!
r6 (defm (root lib dynamic) (&rest args)
Use flex in html
r10 (conserving-vars (args result)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call init-args args)
(funcall block)
(values)))
;;; 11main
Tutorial game works!
r6 (defm (root lib main-p) (s)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call add-text :main s))
Tutorial game works!
r6 (defm (root lib main-pl) (s)
(api-call add-text :main s)
(api-call newline :main))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib main-nl) (s)
(api-call newline :main)
(api-call add-text :main s))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib maintxt) (s)
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call get-text :main))
Tutorial game works!
r6 (defm (root lib desc) (s)
Use flex in html
r10 "")
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib main-clear) ()
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1 (api-call clear-text :main))
Tutorial game works!
r6 ;;; 12stat
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib showstat) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib stat-p) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib stat-pl) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib stat-nl) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib stattxt) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib clear) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib cls) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 13diag
Tutorial game works!
r6 (defm (root lib msg) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 14act
Tutorial game works!
r6 (defm (root lib showacts) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib delact) (name)
(api-call del-act name))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib curacts) ())
(defm (root lib cla) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 15objs
Tutorial game works!
r6 (defm (root lib showobjs) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib addobj) (name)
(ps:chain (root objs) (push name))
(api-call update-objs))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib delobj) (name)
(let ((index (ps:chain (root objs) (index-of name))))
(when (> index -1)
(ps:chain (root objs) (splice index 1))))
(api-call update-objs))
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib killobj) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib countobj) ())
(defm (root lib getobj) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 16menu
Tutorial game works!
r6 (defm (root lib menu) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 17sound
Tutorial game works!
r6 (defm (root lib play) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib isplay) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib close) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib closeall) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 18img
Tutorial game works!
r6 (defm (root lib refint) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib view) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 19input
Tutorial game works!
r6 (defm (root lib showinput) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib usertxt) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib cmdclear) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib input) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; 20time
Tutorial game works!
r6 (defm (root lib wait) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib msecscount) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib settimer) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
;;; misc
Tutorial game works!
r6 (defm (root lib rgb) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib openqst) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib addqst) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib killqst) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib opengame) ())
100% parser, 100% macros, 50% intrinsics, 10% api, 0% misc
r1
Tutorial game works!
r6 (defm (root lib savegame) ())