(defpackage #:clnl (:use :common-lisp)
(:export
#:run #:boot #:run-commands #:run-reporter #:*model-package*
- #:model->multi-form-lisp #:model->single-form-lisp)
+ #:model->multi-form-lisp #:model->single-form-lisp
+ #:nlogo->lisp)
(:documentation
"Main CLNL package
(defpackage #:clnl-code-parser
(:use :common-lisp)
- (:export #:parse #:globals #:procedures #:turtles-own-vars)
+ (:export #:parse #:globals #:procedures #:turtles-own-vars #:patches-own-vars #:breeds)
(:documentation
"CLNL Code Parser
All the code to convert the list of tokens coming from the lexer
into an ast that can be transpiled later."))
-(defpackage #:clnl-nvm
- (:use :common-lisp)
- (:shadow #:random #:count)
- (:export #:export-world #:create-world #:current-state #:with-stop-handler
- ; API as used by transpiled NetLogo programs
- #:agent-value
- #:ask
- #:clear-all
- #:count
- #:create-turtles
- #:die
- #:display
- #:hatch
- #:of
- #:forward
- #:lookup-color
- #:one-of
- #:patches
- #:reset-ticks
- #:random
- #:random-float
- #:random-xcor
- #:random-ycor
- #:set-default-shape
- #:setxy
- #:show
- #:stop
- #:turtles
- #:tick
- #:ticks
- #:turn-right #:turn-left
- #:with)
- (:documentation
- "CLNL NVM
-
-NetLogo Virtual Machine: the simulation engine."))
-
(defpackage #:clnl-lexer
(:use :common-lisp)
(:export #:lex)
current state of the enging and displaying it. Will not house any interface
components."))
-(defpackage #:clnl-cli
- (:use :common-lisp :cl-charms/low-level)
- (:export #:run)
- (:documentation
- "CLNL CLI
-
-The main NetLogo interface for interacting with the program. Since CLNL is
-a command line interface program with a view for display purposes only, this
-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 #:widget-globals #:code)
+ (:export
+ #:execute-button #:default-model #:read-from-nlogo #:world-dimensions #:widget-globals #:code
+ #:buttons #:forever-button-on #:view #:interface #:set-current-interface #:set-callback)
(:documentation
"CLNL Model
the code to read and write .nlogo files, but also the living state of the model
as clnl runs."))
+(defpackage #:clnl-extensions
+ (:use :common-lisp)
+ (:export #:load-extension #:prims)
+ (:documentation
+ "CLNL Extensions
+
+The loading and handling of extensions to CLNL modeled after the way that
+NetLogo handles extensions.
+
+Extensions are defined as Common Lisp systems (under asdf) that export
+the primitive PRIMS. The name of the asdf system is defined to be the
+name of the extension prepended by CLNL-EXTENSION-, such that for a hypothetical
+extension ARRAY, the name of the asdf system would be CLNL-EXTENSION-ARRAY
+and found through conventional asdf means. The package that the required
+functions are symbols in should be the same as the asdf system."))
+
(defpackage #:clnl-default-model-package
(:use :common-lisp)
(:shadow #:go))