Skip to content

muse/mi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mi!

stable development
Build Status Build Status

What's Mi?

Mi is a Javascript transpiler using its own lisp dialect.

Installing Mi

Mi is build in Elixir and requires elixir and mix to be installed. We'll be using mix to build a binary.

$ git clone https://github.com/muse/mi
$ cd mi
$ mix escript.build
$ chmod +x mi

You now have a Mi binary locally available under ./mi. Mi as of right now reads from stdin and isn't production ready at all, this means it will emit AST nodes until then.

Using Mi

/tmp/mi ─── ./mi <<< "(define x 5)"
[%Mi.Token{line: 1, pos: 1, type: :oparen, value: "("},
 %Mi.Token{line: 1, pos: 2, type: :define, value: "define"},
 %Mi.Token{line: 1, pos: 9, type: :identifier, value: "x"},
 %Mi.Token{line: 1, pos: 11, type: :number, value: "5"},
 %Mi.Token{line: 1, pos: 12, type: :cparen, value: ")"}]
'# ======= #'
[%Mi.AST.Variable{default?: false, name: "x",
  value: %Mi.AST.Number{value: "5"}}]

About

Is it mi you're looking for?

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages