[oops, I keep forgetting to add cl-pro email when replying.] IMHO: DSL can be made of a varying mix of abstraction, syntax and semantics. All of which can be achieved within CL using interpreter & compiler, macros, closures, reader macros, compiler macros, printing protocol and CLOS. These will help a lot, both the developer and the user. check the following examples: Corman CL Assembler DSL (check the source code for assembler.lisp and how elegantly normal x86 assembler syntax was introduced into CL code) http://www.cormanlisp.com/index.html SBCL VOPs: http://sbcl-internals.cliki.net/Adding%20VOPs http://paste.lisp.org/display/41937 GOAL: Game Object Assembly Lisp ("...intermix assembly instructions seamlessly with higher-level code...") http://www.gamasutra.com/view/feature/2985/postmortem_naughty_dogs_jak_and_.... CLSQL: SQL syntax CL-Typesetting: typesetting DSL Prolog interpreter or compiler. those are the ones I remember directly when talking about DSL in common-lisp - Ala'a
On Thu, 28 Jul 2011 15:19:13 +0400 "Ala'a Mohammad" <amalawi@gmail.com> wrote:
those are the ones I remember directly when talking about DSL in common-lisp
Perhaps also of interest is CL-PPCRE, as if I remember it also allows access to the internal parse tree, and provides easy means to create/manipulate them... -- Matt
participants (2)
-
Ala'a Mohammad
-
Matthew Mondor