X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain%2Fpackage.lisp;h=392d92b9a3d7207646c3b3b892b04a499ffbf854;hb=2c338ef0bdabd1e327bbf474221239c2eead88e4;hp=111aa9e4a5d26292503be50741888becf4b1a079;hpb=5c8699f151207953f4029e0fc6c488afce99f756;p=clnl diff --git a/src/main/package.lisp b/src/main/package.lisp index 111aa9e..392d92b 100644 --- a/src/main/package.lisp +++ b/src/main/package.lisp @@ -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,13 +8,28 @@ 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) @@ -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,16 @@ into an ast that can be transpiled later.")) (defpackage #:clnl-nvm (:use :common-lisp) - (:export :export-world :create-world :current-state + (:export #:export-world #:create-world #:current-state ; API as used by transpiled NetLogo programs #:ask #:create-turtles + #:die #:forward #:random-float #:show - #:turtles) + #:turtles + #:turn-right #:turn-left) (:documentation "CLNL NVM @@ -64,7 +81,7 @@ NetLogo Virtual Machine: the simulation engine.")) (defpackage #:clnl-lexer (:use :common-lisp) - (:export :lex) + (:export #:lex) (:documentation "CLNL Lexer @@ -72,10 +89,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."))