Skip to content

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

Notifications You must be signed in to change notification settings

duckinator/ooc-in-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages