Skip to content

EskimoBear/dote

Repository files navigation

Dote-ruby

Dote compiler implemented in Ruby.

##Compiling To compile a Dote program call the compile method with its file path.

Dote.compile('program.dt')

A compile will evaluate all singles and calls in the eson file and output a .json file in the same directory.

##Code generation Dote will generate JSON documents by default but the compiler can also generate Ruby source code. The Ruby code generator can be invoked by passing :ruby as the second argument.

Dote.compile('program.dt', :ruby)

##Command-line usage Dote can also be used from the command-line.

#Calls compile with the JSON code generator
Dote program.dt

#Calls compile with the Ruby code generator
Dote --ruby program.dt

##Extending the compiler Dote compiler supports extensibilty by allowing users to define additional special forms to sit alongside those built-in to Dote. This allows a user to create declarative DSLs that use Dote syntax. To create a DSL atop Dote a user defines a domain specific set of special forms and their respective handlers.

golf-compiler = Dote.extend(GolfDsl, "golf")

In the snippet above the extend method returns a compiler for a new Dote based DSL called golf. golf-compiler has all the abilities of the original Dote compiler as well as the ability to parse the special forms defined in the GolfDsl module.

Releases

No releases published

Packages

No packages published