(defpackage #:clnl-code-parser
(:use :common-lisp)
- (:export #:parse #:globals #:procedures)
+ (: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)
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)
+ (: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))