Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

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

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 nagaqueen
Octocat-spinner-32 test
Octocat-spinner-32 util
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README.md
Octocat-spinner-32 build.rb
Octocat-spinner-32 test.rb
README.md

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.

Something went wrong with that request. Please try again.