pegjs-each-code v0.3.1
DEPRECATED. Use peg.compiler.visitor added in PEG.js 0.10.0 instead.
pegjs-each-code 
npm install pegjs-each-code
var eachCode = require('pegjs-each-code')
eachCode(ast, function(node, labels, ruleName) {
try {
node.code = compile(node.code, {locals: labels})
} catch (error) {
var pos = eachCode.getFilePosition(node, error)
throw new Error('Line ' + pos.line + ', column ' + pos.column +
' (in rule "' + ruleName + '"): ' + error.message)
}
})The function passed to
eachCodewill be run once for each node with acodeproperty, such as “action”, “semantic and” and “semantic not” nodes, except the initializer.labelsis an array of all the labels that are available to the code snippet.ruleNameis the name of the rule that the code snippet occurs in.
eachCode is useful when making a plugin for a compile-to-js language (such as
CoffeeScript and TypeScript) or a linter.
If such a processor throws an error, use eachCode.getFilePosition(node, {line:
Number, column: Number}) to make the line and column of the error relative to
the entire file, rather than to node (the code snippet). It returns an object
with a line and a column property.