(defpackage #:clnl (:use :common-lisp)
- (:export :run :boot :run-commands :run-reporter)
+ (:export
+ #:run #:boot #:run-commands #:run-reporter #:*model-package*
+ #:model->multi-form-lisp #:model->single-form-lisp)
(:documentation
"Main CLNL package
(defpackage #:clnl-parser
(:use :common-lisp)
- (:export :parse)
+ (:export #:parse)
(:documentation
"CLNL Parser
All the code to convert the list of tokens coming from the lexer
into an ast that can be transpiled later."))
+(defpackage #:clnl-code-parser
+ (:use :common-lisp)
+ (:export #:parse #:globals #:procedures #:turtles-own-vars)
+ (:documentation
+ "CLNL Code Parser
+
+A parser specifically for code from NetLogo models, that turns the lexed
+ast from an entire structured file into something more defined.
+
+This is different from the general parser (in clnl-parser) in that
+it's made for parsing the code section of nlogo files, and so works
+outside of the constraints. In NetLogo, I believe this is analagous
+to the StructureParser, but I'm guessing there's weird overlap with
+other things."))
+
(defpackage #:clnl-random
(:use :common-lisp)
(:shadow #:export)
- (:export #:export #:set-seed #:next-int #:next-double)
+ (:export #:export #:set-seed #:next-int #:next-double #:next-long)
(:documentation
"Wrapper around mt19937.
(defpackage #:clnl-transpiler
(:use :common-lisp)
- (:export :transpile-commands :transpile-reporter)
+ (:export #:transpile #:reporter-p #:command-list-p)
(:documentation
"CLNL Transpiler
(defpackage #:clnl-nvm
(:use :common-lisp)
- (:export :export-world :create-world :current-state
+ (: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
- #:turtles)
+ #:stop
+ #:turtles
+ #:tick
+ #:ticks
+ #:turn-right #:turn-left
+ #:with)
(:documentation
"CLNL NVM
(defpackage #:clnl-lexer
(:use :common-lisp)
- (:export :lex)
+ (:export #:lex)
(:documentation
"CLNL Lexer
(defpackage #:clnl-interface
(:use :common-lisp)
- (:export :run :export-view)
+ (:export #:run #:export-view #:initialize)
(:documentation
"CLNL Interface
(defpackage #:clnl-cli
(:use :common-lisp :cl-charms/low-level)
- (:export :run)
+ (: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)
+ (:documentation
+ "CLNL Model
+
+The representation, parsing, and serializing of NetLogo model files, including
+all of the sections, and subsections held within. This package houses not only
+the code to read and write .nlogo files, but also the living state of the model
+as clnl runs."))
+
+(defpackage #:clnl-default-model-package
+ (:use :common-lisp)
+ (:shadow #:go))