From b4f2bfd8e590105c4ea65e6a5751edf0dc422aa2 Mon Sep 17 00:00:00 2001 From: Frank Duncan Date: Thu, 21 Apr 2016 19:23:03 -0500 Subject: [PATCH] Parse widgets v2 - globals --- .travis.yml | 2 +- bin/buildtravisexec.sh | 2 +- deps/common-lisp/docgen_0.1.tar.gz | Bin 6022 -> 0 bytes deps/common-lisp/docgen_0.2.tar.gz | Bin 0 -> 6447 bytes src/main/main.lisp | 26 ++++++++++++++++++++++++-- src/main/model.lisp | 28 ++++++++++++++++++++++++++++ src/main/package.lisp | 4 ++-- 7 files changed, 56 insertions(+), 6 deletions(-) delete mode 100644 deps/common-lisp/docgen_0.1.tar.gz create mode 100644 deps/common-lisp/docgen_0.2.tar.gz diff --git a/.travis.yml b/.travis.yml index 39f79ca..fa44e4a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ addons: before_install: - export DISPLAY=:99.0 - /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x24 - - wget http://frank.kank.net/travissbcl/clnl/213ed30/$(git rev-parse HEAD)/travissbcl + - wget http://frank.kank.net/travissbcl/clnl/72aabe5/$(git rev-parse HEAD)/travissbcl - chmod +x travissbcl script: - ./travissbcl --script bin/all.lisp diff --git a/bin/buildtravisexec.sh b/bin/buildtravisexec.sh index 28dfd60..a7757e2 100755 --- a/bin/buildtravisexec.sh +++ b/bin/buildtravisexec.sh @@ -26,7 +26,7 @@ mkdir -p tmp/deps/ tar zxf ../../deps/common-lisp/trivial-features_0.8.tar.gz && tar zxf ../../deps/common-lisp/cl-charms-9bb94ef.tar.gz && tar zxf ../../deps/common-lisp/style-checker_0.1.tar.gz && - tar zxf ../../deps/common-lisp/docgen_0.1.tar.gz && + tar zxf ../../deps/common-lisp/docgen_0.2.tar.gz && tar zxf ../../deps/common-lisp/ieee-floats-92e481a.tar.gz && tar zxf ../../deps/common-lisp/strictmath_0.1.tar.gz ) diff --git a/deps/common-lisp/docgen_0.1.tar.gz b/deps/common-lisp/docgen_0.1.tar.gz deleted file mode 100644 index 9798899670166aaabf2a00af08cd4cb644dc512b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6022 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 (if file (with-open-file (str file) (clnl-model:read-from-nlogo str)) (clnl-model:default-model)))) - (*package* (find-package :cl))) + (*package* *model-package*)) (eval netlogoed-lisp))) (defun run-commands (cmds) @@ -82,7 +103,8 @@ DESCRIPTION: ; The intention of this method is to generate the common lisp equivalent of a model file, ; such that if you decided to no longer use nlogo, you could use the engine without it. (defun model->lisp (model) - `(progn + `(let + ,(clnl-model:globals model) (clnl-random:set-seed 15) ; should the seed always be 15? (clnl-nvm:create-world :dims ',(clnl-model:world-dimensions model)) (clnl-interface:initialize :dims ',(clnl-model:world-dimensions model)))) diff --git a/src/main/model.lisp b/src/main/model.lisp index 8aa3715..83179a0 100644 --- a/src/main/model.lisp +++ b/src/main/model.lisp @@ -221,3 +221,31 @@ DESCRIPTION: :xmax (view-max-pxcor view) :ymin (view-min-pycor view) :ymax (view-max-pycor view)))) + +(defun globals (model) + "GLOBALS MODEL => GLOBALS + + GLOBALS: GLOBAL* + +ARGUMENTS AND VALUES: + + MODEL: A valid model + GLOBAL: A symbol interned in clnl:*model-package* + +DESCRIPTION: + + Returns the globals that get declared in the model, from widgets or + from code. They are interned in the package set for clnl, so + that they can later be used by functions in that package." + (mapcar + (lambda (pair) + (list + (intern (string-upcase (car pair)) clnl:*model-package*) + (cadr pair))) + (remove nil + (mapcar + (lambda (widget) + (typecase widget + (slider (list (slider-varname widget) (slider-default widget))) + (switch (list (switch-varname widget) (switch-on widget))))) + (model-interface model))))) diff --git a/src/main/package.lisp b/src/main/package.lisp index 207fc87..3998b00 100644 --- a/src/main/package.lisp +++ b/src/main/package.lisp @@ -1,5 +1,5 @@ (defpackage #:clnl (:use :common-lisp) - (:export #:run #:boot #:run-commands #:run-reporter) + (:export #:run #:boot #:run-commands #:run-reporter #:*model-package*) (:documentation "Main CLNL package @@ -92,7 +92,7 @@ is where all the features that the traditional NetLogo UI lives.")) (defpackage #:clnl-model (:use :common-lisp) - (:export #:default-model #:read-from-nlogo #:world-dimensions) + (:export #:default-model #:read-from-nlogo #:world-dimensions #:globals) (:documentation "CLNL Model -- 2.25.1