yalex (yet another lexer)
Install
npm
npm install yalex --save
From Git Repository
npm install git://github.com/elmasse/yalex.git --save
Usage
Define grammar in json format
var Lexer = lexer grammar tokens = ; grammar = "expressions": '{digit}' : '[0-9]' '{number}': '{digit}+(\\.{digit}+)?(E[+-]?{digit}+)?' "rules": '[A-Za-z_]+' : 'Token.IDENTIFIER|install' '{number}' : 'Token.NUMERIC|install' '[ \\s\\n\\t]+' : '' /*NO ACTION*/ '$' : 'Token.EOF|install|END' ; lexer = Lexer; //tokenizelexer; console;
Use Grammar defined in external json file
Grammar.json
var Lexer = lexer tokens = ; lexer = Lexer; //tokenizelexer; console;
Define Lex rules programmaticaly
var Lexer = lexer init tokens = ; lexer = Lexer; init = lexer; //expressions /[0-9]/;//rules: { tokens; };// - using expressions { tokens; }; /*No action*/; { tokens; return false;}; //tokenizelexer; console;
All these examples will print:
["IDENTIFIER", "IDENTIFIER", "NUMERIC", "EOF"]