tonic + npm: highlighted

node v5.12.0
endpointsharetweet
var parser = require('parsing').create({ ignore: 'N_WHITESPACE', start: 'N_PROGRAM', rules: { 'N_WHITESPACE': /\s+/, 'N_STATEMENT': { oneOf: ['N_EXPRESSION_STATEMENT'] }, 'N_EXPRESSION_STATEMENT': [ {name: 'expression', rule: 'N_EXPRESSION'}, /;/ ], 'N_EXPRESSION': { oneOf: ['N_BINARY_EXPRESSION'] }, 'N_BINARY_EXPRESSION': [ {name: 'left', rule: 'N_NUMBER', captureOffsetAs: 'offset'}, {name: 'operator', what: /[+*\/-]/, captureOffsetAs: 'offset'}, {name: 'right', rule: 'N_NUMBER', captureOffsetAs: 'offset'} ], 'N_NUMBER': [ {name: 'number', what: /\d+/, captureOffsetAs: 'offset'} ], 'N_PROGRAM': [ {name: 'statements', zeroOrMoreOf: 'N_STATEMENT'} ] } }); var highlighter = require('highlighted').create({ offset: function (node) { return node.offset.offset; }, length: function (node) { return node.offset.length; }, type: 'name', nodes: { 'N_NUMBER': function (node, replace) { replace(node, '<span class="number">' + node.number + '</span>'); } } }); var code = '21 + 22; 23 + 24;'; var ast = parser.parse(code); var highlightedResult = highlighter.highlight(code, ast); highlightedResult;
Created from: https://tonicdev.com/npm/highlighted
Loading…

no comments

    sign in to comment