Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/duckinator/ooc-in-ruby

ooc interpreter in ruby. Purely for shits and giggles and possibly experimentation. Don't assume it's entirely compliant.
https://github.com/duckinator/ooc-in-ruby

Last synced: 1 day ago
JSON representation

ooc interpreter in ruby. Purely for shits and giggles and possibly experimentation. Don't assume it's entirely compliant.

Awesome Lists containing this project

README

        

# ooc-in-ruby: ooc interpreter written primarily in ruby

...and a lot of automagically-generated C. The hell if I'm duplicating all of _that._

The idea is to write as much of it as possible in ruby.

I gave up writing a custom parser for now, so it uses nagaqueen.
Hellooooo, 9,350 SLOC of generated C, tied together with 33 SLOC of hand-written C.

Good news: this means I should be albe to get away with `./get-nagaqueen.sh && ./generate-boilerplate.rb` and coding some ruby any time nagaqueen changes.

# Building it

Here's all the files related to generating the shitton of C and compiling it all.

* `./util/get-nagaqueen.sh`: tries to find NagaQueen.c, copies it to ./nagaqueen/nagaqueen.c.
* `./util/generate-boilerplate.rb`: generates approximately 960 lines of ruby/C interop boilerplate in ./nagaqueen/boilerplate.h.
* `./util/generate-nagaqueen-boilerplate.rb`: generates approximately 590 lines of ruby/C interop boilerplate in ./lib/nagaqueen-methods.rb.
* `./build.rb`: builds this monstrous thing.
* `./test.rb`: test this monstrous thing.

In most cases, all you should need is `./build.rb` and `./test.rb`.