ometajs v4.0.0
____ __ ___ __ _______
/ __ \/ |/ /__ / /_____ _ / / ___/
/ / / / /|_/ / _ \/ __/ __ `/_ / /\__ \
/ /_/ / / / / __/ /_/ /_/ / /_/ /___/ /
\____/_/ /_/\___/\__/\__,_/\____//____/
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
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago