LibDSL is a library that helps the implementer of an embedded domain specific language (EDSL) effectively develop it in D language.
The LibDSL library accepts as input some kinds of ``specifications'' of the EDSL that the implementer is going to develop and a D program within which an EDSL source program written by the user is embedded. It produces the front-end code of an LALR parser for the EDSL program and back-end code of the execution engine. LibDSL is able to produce two kinds of execution engines, namely compiler-based and interpreter-based engines, either of which the user can properly choose depending on whether an EDSL program is known at compile-time or not.
Source code of LINQ-like EDSL and LibDSL: linqlike-edsl.zip
Source code of an extension of LINQ-like EDSL and LibDSL: linqlike-edsl-ext.zip
Copyright (c) 2014, LibDSL Project. All rights reserved. (Last Updated: 4 October 2014)