A parser, converter, and pretty-printer generator for OCaml.
Based on https://rwmj.wordpress.com/2010/12/29/packrat-parser-with-left-recursion/, with heavy modifications.
npm installnpm run build (you'll have to run this a couple times before it compiles without error π)cd reason-lispnpm install (this will fail)cd node_modules; rm -rf myntax; ln -s ../../ myntax; cd ..npm run buildyeah it's pretty hacky. I think I might just switch over to esy+dune soon
NOTE: this is all out of date
Building & using the lisp-to-ocaml parser
npm installnpm run build./lib/bs/native/lisp.native ml some-file.rel will print out the lisp.re file converted to ocaml syntax./lib/bs/native/lisp.native bin some-file.rel > some-file.ast will act as a -pp, it will output the binary representation of the ocaml AST to standard out (here redirected into a file). You can then compile it like ocamlc -impl some-file.ast.The ocaml compiler actually makes this super easy :D.
watch.js is a script that, when run with a directory, will watch the .rel files in that directory, and recompile them when they change, piping the binary output into the equivalent .ml file. You can then have bucklescript watching the directory, or jbuilder running, and they will treat the binary .ml file as a perfectly normal source file.
npm run example will start the watcher for example/src. You can then start bsb in the example directory with cd example && npm start, and edit example/src/Hello.rel and see bsb recompile.
194 commits
12 commits
OCaml
93.9%
C++
4.5%
JavaScript
1.1%
A parser, converter, and pretty-printer generator for OCaml.
Based on https://rwmj.wordpress.com/2010/12/29/packrat-parser-with-left-recursion/, with heavy modifications.
npm installnpm run build (you'll have to run this a couple times before it compiles without error π)cd reason-lispnpm install (this will fail)cd node_modules; rm -rf myntax; ln -s ../../ myntax; cd ..npm run buildyeah it's pretty hacky. I think I might just switch over to esy+dune soon
NOTE: this is all out of date
Building & using the lisp-to-ocaml parser
npm installnpm run build./lib/bs/native/lisp.native ml some-file.rel will print out the lisp.re file converted to ocaml syntax./lib/bs/native/lisp.native bin some-file.rel > some-file.ast will act as a -pp, it will output the binary representation of the ocaml AST to standard out (here redirected into a file). You can then compile it like ocamlc -impl some-file.ast.The ocaml compiler actually makes this super easy :D.
watch.js is a script that, when run with a directory, will watch the .rel files in that directory, and recompile them when they change, piping the binary output into the equivalent .ml file. You can then have bucklescript watching the directory, or jbuilder running, and they will treat the binary .ml file as a perfectly normal source file.
npm run example will start the watcher for example/src. You can then start bsb in the example directory with cd example && npm start, and edit example/src/Hello.rel and see bsb recompile.
194 commits
12 commits
OCaml
93.9%
C++
4.5%
JavaScript
1.1%