Prims - Implement set-default-shape
[clnl] / src / main / package.lisp
index 111aa9e4a5d26292503be50741888becf4b1a079..b1c4a2757dfabff275c9a4621502103b43b68e76 100644 (file)
@@ -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
 
@@ -8,17 +8,32 @@ the place that ties all the parts together into a cohesive whole."))
 
 (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)
+ (: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.
 
@@ -28,7 +43,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-commands #:transpile-reporter)
  (:documentation
   "CLNL Transpiler
 
@@ -49,14 +64,33 @@ into an ast that can be transpiled later."))
 
 (defpackage #:clnl-nvm
  (:use :common-lisp)
- (:export :export-world :create-world :current-state
+ (:shadow #:random #:count)
+ (:export #:export-world #:create-world #:current-state
   ; API as used by transpiled NetLogo programs
+  #:agent-value
   #:ask
+  #:count
   #:create-turtles
+  #:die
+  #:hatch
+  #:of
   #:forward
+  #:lookup-color
+  #:one-of
+  #:patches
+  #:reset-ticks
+  #:random
   #:random-float
+  #:random-xcor
+  #:random-ycor
+  #:set-default-shape
+  #:setxy
   #:show
-  #:turtles)
+  #:turtles
+  #:tick
+  #:ticks
+  #:turn-right #:turn-left
+  #:with)
  (:documentation
   "CLNL NVM
 
@@ -64,7 +98,7 @@ NetLogo Virtual Machine: the simulation engine."))
 
 (defpackage #:clnl-lexer
  (:use :common-lisp)
- (:export :lex)
+ (:export #:lex)
  (:documentation
   "CLNL Lexer
 
@@ -72,10 +106,31 @@ The primary code responsible for tokenizing NetLogo code."))
 
 (defpackage #:clnl-interface
  (:use :common-lisp)
- (:export :run :export-view)
+ (:export #:run #:export-view #:initialize)
  (:documentation
   "CLNL Interface
 
 The NetLogo view interface using opengl.  This is responsible for taking the
 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 #:globals)
+ (: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."))