____ __ ___ __ _______
/ __ \/ |/ /__ / /_____ _ / / ___/
/ / / / /|_/ / _ \/ __/ __ `/_ / /\__ \
/ /_/ / / / / __/ /_/ /_/ / /_/ /___/ /
\____/_/ /_/\___/\__/\__,_/\____//____/
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.
$ curl http://npmjs.org/install.sh | sh
$ [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
$ 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).
var ometajs = require('ometajs');
var ast = ometajs.grammars.BSJSParser.matchAll('var x = 1', 'topLevel'),
code = ometajs.grammars.BSJSTranslator.matchAll([ast], 'trans');
ometa Simple {
top = [#simple] -> 'ok'
}
More information about OMetaJS syntax.
Quickly prototype and buildyour own parser/language. Process/traverse complex AST.
Some projects that are using OMetaJS:
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.