code: function run(grammar, module, filename) {
  
    // this is used to bind OMeta to runtime. It can be used also (lateron) to dynamically
    // inject other environment-variables.  
    //   {a:1,b:2,c:3,d:4} -> function(a,b,c,d) {...}.call(1,2,3,4)
    // this is better than `with`, since it offers full control
    var source = [
      "module.grammar = (function(OMeta) {",
        grammar,
      "});"
    ].join('');
  
    module._compile(source, filename);
    module.grammar.call(module, ometa);
    return module.exports;
  }
docs: Evaluates the grammar-module and returns the exports of that module