X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain%2Fpackage.lisp;h=38d7ca065532ae4b34f108dfec3eb43a9caf5e40;hb=97c390f;hp=dcebaf8eae291ab63b8b9b6393d0cdf1214eff53;hpb=c49ca54ae5a11563aeca0cf01b4fb0b6e181befa;p=clnl diff --git a/src/main/package.lisp b/src/main/package.lisp index dcebaf8..38d7ca0 100644 --- a/src/main/package.lisp +++ b/src/main/package.lisp @@ -1,5 +1,7 @@ (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 @@ -8,17 +10,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 #: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. @@ -28,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 @@ -49,14 +66,36 @@ 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 #: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 @@ -64,7 +103,7 @@ NetLogo Virtual Machine: the simulation engine.")) (defpackage #:clnl-lexer (:use :common-lisp) - (:export :lex) + (:export #:lex) (:documentation "CLNL Lexer @@ -72,7 +111,7 @@ 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 @@ -82,7 +121,7 @@ components.")) (defpackage #:clnl-cli (:use :common-lisp :cl-charms/low-level) - (:export :run) + (:export #:run) (:documentation "CLNL CLI @@ -91,8 +130,8 @@ 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 :cl-charms/low-level) - (:export :read-from-nlogo) + (:use :common-lisp) + (:export #:default-model #:read-from-nlogo #:world-dimensions #:widget-globals #:code) (:documentation "CLNL Model @@ -100,3 +139,7 @@ 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))