Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

OMeta for JavaScript

This branch is 0 commits ahead and 0 commits behind nodejs

3.3.6

latest commit d4178145ee
Fedor Indutny indutny authored March 13, 2014
Octocat-spinner-32 bin cli: remove v8 flags July 08, 2012
Octocat-spinner-32 doc first commit September 10, 2010
Octocat-spinner-32 lib bsjs: fix parsing "\u00A0" March 13, 2014
Octocat-spinner-32 test bsjs: fix parsing "\u00A0" March 13, 2014
Octocat-spinner-32 .gitignore [makefile] use docco for docs November 22, 2011
Octocat-spinner-32 .travis.yml travis: remove 0.4, add 0.8 July 19, 2012
Octocat-spinner-32 GNUmakefile test: add regression test July 19, 2012
Octocat-spinner-32 LICENSE [license] this is a rewrite from scratch May 30, 2012
Octocat-spinner-32 README.md readme: add Jason to contributors August 31, 2012
Octocat-spinner-32 package.json 3.3.6 March 13, 2014
README.md
   ____  __  ___     __            _______
  / __ \/  |/  /__  / /_____ _    / / ___/
 / / / / /|_/ / _ \/ __/ __ `/_  / /\__ \
/ /_/ / /  / /  __/ /_/ /_/ / /_/ /___/ /
\____/_/  /_/\___/\__/\__,_/\____//____/

OMetaJS Build Status

OMetaJS is a JavaScript implementation of OMeta, an object-oriented language for pattern matching.

This is a node.js module for developing and using such pattern matching grammars.

Installation

Installing npm (node package manager)

$ curl http://npmjs.org/install.sh | sh

Installing ometajs

$ [sudo] npm install ometajs -g

Note: If you are using ometajs programmatically you should not install it globally.

$ cd /path/to/your/project
$ npm install ometajs

Usage

Command line

$ ometajs2js --help

Usage:
  ometajs2js [OPTIONS] [ARGS]


Options:
  -h, --help : Help
  -v, --version : Version
  -i INPUT, --input=INPUT : Input file (default: stdin)
  -o OUTPUT, --output=OUTPUT : Output file (default: stdout)
  --root=ROOT : Path to root module (default: ometajs)

ometajs2js will take input *.ometajs file and produce a CommonJS- compatible javascript file.

You may also require('*.ometajs') files directly without compilation. (OMetaJS is patching require.extensions as CoffeeScript does).

Usage as CommonJS module

var ometajs = require('ometajs');

var ast = ometajs.grammars.BSJSParser.matchAll('var x = 1', 'topLevel'),
    code = ometajs.grammars.BSJSTranslator.matchAll([ast], 'trans');

Example grammar

ometa Simple {
  top = [#simple] -> 'ok'
}

More information about OMetaJS syntax.

Use cases

Quickly prototype and buildyour own parser/language. Process/traverse complex AST.

Some projects that are using OMetaJS:

More information

To study OMetaJS or ask questions about its core you can reach out to the original repository author Alessandro Warth or me.

Here is the documented code.

Contributors

Something went wrong with that request. Please try again.