X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain%2Fparse.lisp;h=b3dd3d79c919eedd3b169eb5bdd1fb2b7988fb1d;hb=3528ea7;hp=ad9f746a211d8e15bf1d2a3d4e55e2f41ab46531;hpb=c9cf0d199bfaa751722aab688d22f43e4d70ae34;p=clnl diff --git a/src/main/parse.lisp b/src/main/parse.lisp index ad9f746..b3dd3d7 100644 --- a/src/main/parse.lisp +++ b/src/main/parse.lisp @@ -99,8 +99,8 @@ DESCRIPTION: (parse-internal (cdr lexed-ast) :prev-item (coerce (car lexed-ast) 'double-float) :arg-countdown (when arg-countdown (1- arg-countdown)))) - ((eql (intern "(" (find-package :keyword)) (car lexed-ast)) (parse-parened-expr (cdr lexed-ast) arg-countdown)) - ((eql (intern ")" (find-package :keyword)) (car lexed-ast)) (error "Closing parens has no opening parens")) + ((eql (intern "(" :keyword) (car lexed-ast)) (parse-parened-expr (cdr lexed-ast) arg-countdown)) + ((eql (intern ")" :keyword) (car lexed-ast)) (error "Closing parens has no opening parens")) ((eql :let (car lexed-ast)) (parse-let (cdr lexed-ast) arg-countdown)) ((eql :[ (car lexed-ast)) (parse-block (cdr lexed-ast) arg-countdown)) (prim @@ -181,14 +181,14 @@ DESCRIPTION: (defun find-closing-paren (tokens &optional (depth 0)) (cond ((not tokens) (error "Failed to find a matching closing bracket")) - ((and (eql (intern ")" (find-package :keyword)) (car tokens)) (= depth 0)) (values nil (cdr tokens))) + ((and (eql (intern ")" :keyword) (car tokens)) (= depth 0)) (values nil (cdr tokens))) (t (multiple-value-bind (in-block after-block) (find-closing-paren (cdr tokens) (cond - ((eql (intern "(" (find-package :keyword)) (car tokens)) (1+ depth)) - ((eql (intern ")" (find-package :keyword)) (car tokens)) (1- depth)) (t depth))) + ((eql (intern "(" :keyword) (car tokens)) (1+ depth)) + ((eql (intern ")" :keyword) (car tokens)) (1- depth)) (t depth))) (values (cons (car tokens) in-block) after-block))))) (defmacro defprim (name args &optional infix) @@ -224,7 +224,7 @@ DESCRIPTION: (defprim :clear-all ()) (defprim :crt (:number)) (defprim :color ()) -(defprim :count ()) +(defprim :count (:agentset)) (defprim :die ()) (defprim :display ()) (defprim :with (:reporter-block)) @@ -239,6 +239,7 @@ DESCRIPTION: (defprim :not (:boolean)) (defprim :nobody ()) (defprim :one-of (t)) +(defprim :of (:reporter-block :agentset) :infix) (defprim :patches ()) (defprim :pcolor ()) (defprim :random (:number)) @@ -256,7 +257,9 @@ DESCRIPTION: (defprim :size ()) (defprim :stop ()) (defprim :tick ()) +(defprim :ticks ()) (defprim :turtles ()) +(defprim :who ()) ; colors (defprim :black ()) @@ -271,12 +274,3 @@ DESCRIPTION: (defstructureprim :patches-own) (defstructureprim :to) (defstructureprim :to-report) - -; Placeholder prims that should be populated in dynamic prims - -; Generated by breeds -(defprim :sheep ()) -(defprim :wolves ()) -(defprim :create-sheep (:number :command-block)) ; look at me not have to do optionals yet -(defprim :sheep-here ()) -(defprim :create-wolves (:number :command-block))