Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the cl-dsl Reference Manual, version 0.1, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Dec 22 12:14:32 2020 GMT+0.
• Introduction | What cl-dsl is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
Easily define domain specific languages.
;; define auxillary macros and functions
MY-PACKAGE> (defmacro foo () ...)
MY-PACKAGE> (defun bar () ...)
;; define a master-macro of your DSL
MY-PACKAGE> (defmacro dsl (with-macrolets (foo) (with-flets (bar) ....)))
;; now it can be used like this, no need to explicitly import FOO
CL-USER> (my-package:dsl (foo 1 2 3))
;; Outside MY-PACKAGE:DSL FOO may well mean something else.
CL-USER> (foo "blah blah blah")
Domain specific language usually consists of a set of certain macros and functions. Usually almost all of these macros and functions make sense only when used inside a "master-macro" form (Characteristic example of this is ITERATE - domain specific language for iteration).
If one wants to deploy his newly written DSL as a package, one faces a problem: how to make all these symbols accessible in other packages.
There are several obvious choices:
This package provides third, I believe, smarter, choice. It exports two utility functions - WITH-MACROLETS and WITH-FLETS. Then you define your DSL as follows:
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The cl-dsl system |
Alexander Popolitov <popolit@gmail.com>
GPL
Easily define domain specific languages
0.1
cl-dsl.asd (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
• The cl-dsl.asd file | ||
• The cl-dsl/package.lisp file | ||
• The cl-dsl/cl-dsl.lisp file |
Next: The cl-dsl/package․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
cl-dsl.asd
cl-dsl (system)
Next: The cl-dsl/cl-dsl․lisp file, Previous: The cl-dsl․asd file, Up: Lisp files [Contents][Index]
Previous: The cl-dsl/package․lisp file, Up: Lisp files [Contents][Index]
package.lisp (file)
cl-dsl (system)
cl-dsl.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The cl-dsl package |
package.lisp (file)
common-lisp
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions |
Previous: Definitions, Up: Definitions [Contents][Index]
• Exported functions |
Previous: Exported definitions, Up: Exported definitions [Contents][Index]
cl-dsl.lisp (file)
cl-dsl.lisp (file)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | C F L |
---|
Jump to: | C F L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | F W |
---|
Index Entry | Section | ||
---|---|---|---|
| |||
F | |||
Function, with-flets : | Exported functions | ||
Function, with-macrolets : | Exported functions | ||
| |||
W | |||
with-flets : | Exported functions | ||
with-macrolets : | Exported functions | ||
|
Jump to: | F W |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | C P S |
---|
Index Entry | Section | ||
---|---|---|---|
| |||
C | |||
cl-dsl : | The cl-dsl system | ||
cl-dsl : | The cl-dsl package | ||
| |||
P | |||
Package, cl-dsl : | The cl-dsl package | ||
| |||
S | |||
System, cl-dsl : | The cl-dsl system | ||
|
Jump to: | C P S |
---|