____ __ ___ __ _______
/ __ \/ |/ /__ / /_____ _ / / ___/
/ / / / /|_/ / _ \/ __/ __ `/_ / /\__ \
/ /_/ / / / / __/ /_/ /_/ / /_/ /___/ /
\____/_/ /_/\___/\__/\__,_/\____//____/
OMetaJS
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