X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=clnl;a=blobdiff_plain;f=src%2Fmain%2Fpackage.lisp;h=6f5f22f71700514d5bf1c92871483db77caa9a3a;hp=38d7ca065532ae4b34f108dfec3eb43a9caf5e40;hb=89cb3482de1fefc2d8e5f67e1e04a0790e8cd243;hpb=97c390f3cee5094fa6795acd4b25b7598d5dd1bd diff --git a/src/main/package.lisp b/src/main/package.lisp index 38d7ca0..6f5f22f 100644 --- a/src/main/package.lisp +++ b/src/main/package.lisp @@ -1,7 +1,8 @@ (defpackage #:clnl (:use :common-lisp) (:export #:run #:boot #:run-commands #:run-reporter #:*model-package* - #:model->multi-form-lisp #:model->single-form-lisp) + #:model->multi-form-lisp #:model->single-form-lisp + #:nlogo->lisp) (:documentation "Main CLNL package @@ -19,7 +20,7 @@ into an ast that can be transpiled later.")) (defpackage #:clnl-code-parser (:use :common-lisp) - (:export #:parse #:globals #:procedures #:turtles-own-vars) + (:export #:parse #:globals #:procedures #:turtles-own-vars #:patches-own-vars #:breeds) (:documentation "CLNL Code Parser @@ -64,43 +65,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) - (: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 - #:stop - #:turtles - #:tick - #:ticks - #:turn-right #:turn-left - #:with) - (:documentation - "CLNL NVM - -NetLogo Virtual Machine: the simulation engine.")) - (defpackage #:clnl-lexer (:use :common-lisp) (:export #:lex) @@ -119,19 +83,11 @@ 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 #:widget-globals #:code) + (:export + #:execute-button #:default-model #:read-from-nlogo #:world-dimensions #:widget-globals #:code + #:buttons #:textboxes #:forever-button-on #:switches #:sliders #:view #:interface #:set-current-interface #:set-callback) (:documentation "CLNL Model @@ -140,6 +96,22 @@ 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 #:prims) + (: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))