Skip to content

Latest commit

 

History

History
44 lines (25 loc) · 1.23 KB

README.md

File metadata and controls

44 lines (25 loc) · 1.23 KB

syntax-spec

A metalanguage for creating sophisticated DSLs in Racket. You provide a grammar and binding rules, and the metalanguage provides a front-end that checks binding, expands macros to your DSL core langauge, and provides tools for working with binding in your DSL's compiler.

There are a few relatively-complete example DSL implementations: miniKanren, miniclass, and TinyHDL. There is also a small state machine DSL.

A release is available on the Racket package server as syntax-spec-v1.

This is still a prototype: future releases will likely contain breaking changes, and the documentation is incomplete. However, breaking changes will be released under an updated package name.

To use the released package, install via:

raco pkg install syntax-spec-v1

and import as

(require syntax-spec-v1)

To use the latest, unstable version, check out the Git repository, change directory into it, and run:

raco pkg install

Then import as

(require syntax-spec)

Once installed, you can access the documentation via:

raco docs syntax-spec