Code reformat - Break up nvm files, package declaration based on dictionary grouping
[clnl] / src / main / package.lisp
index 964001c62c46bd55a05516c9aab4de247383af56..8bafc43160219450c8a5a276a251da64e6bfb86e 100644 (file)
@@ -1,5 +1,7 @@
 (defpackage #:clnl (:use :common-lisp)
- (:export #:run #:boot #:run-commands #:run-reporter #:*model-package*)
+ (:export
+  #:run #:boot #:run-commands #:run-reporter #:*model-package*
+  #:model->multi-form-lisp #:model->single-form-lisp)
  (:documentation
   "Main CLNL package
 
@@ -17,7 +19,7 @@ into an ast that can be transpiled later."))
 
 (defpackage #:clnl-code-parser
  (:use :common-lisp)
- (:export #:parse #:globals)
+ (:export #:parse #:globals #:procedures #:turtles-own-vars #:patches-own-vars #:breeds)
  (:documentation
   "CLNL Code Parser
 
@@ -33,7 +35,7 @@ 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.
 
@@ -43,7 +45,7 @@ to match how java.util.Random works.  Turtles, all the way down."))
 
 (defpackage #:clnl-transpiler
  (:use :common-lisp)
- (:export #:transpile-commands #:transpile-reporter)
+ (:export #:transpile #:reporter-p #:command-list-p)
  (:documentation
   "CLNL Transpiler
 
@@ -62,29 +64,6 @@ the nvm in the same way that comes out of this transpiler
 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)
- (:export #:export-world #:create-world #:current-state
-  ; API as used by transpiled NetLogo programs
-  #:agent-value
-  #:ask
-  #:create-turtles
-  #:die
-  #:of
-  #:forward
-  #:lookup-color
-  #:reset-ticks
-  #:random-float
-  #:show
-  #:turtles
-  #:tick
-  #:ticks
-  #:turn-right #:turn-left)
- (:documentation
-  "CLNL NVM
-
-NetLogo Virtual Machine: the simulation engine."))
-
 (defpackage #:clnl-lexer
  (:use :common-lisp)
  (:export #:lex)
@@ -115,7 +94,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 #:globals)
+ (:export #:default-model #:read-from-nlogo #:world-dimensions #:widget-globals #:code)
  (:documentation
   "CLNL Model
 
@@ -123,3 +102,23 @@ 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-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))