@log4b0at/pegjs
Version:
Parser generator for JavaScript
32 lines (19 loc) • 577 B
JavaScript
;
// Checks that all rules are used.
function reportUnusedRules( ast, session, options ) {
const used = {};
function yes( node ) {
used[ node.name || node ] = true;
}
options.allowedStartRules.forEach( yes );
session.buildVisitor( { rule_ref: yes } )( ast );
ast.rules.forEach( rule => {
if ( used[ rule.name ] !== true ) {
session.warn(
`Rule "${ rule.name }" is not referenced.`,
rule.location,
);
}
} );
}
module.exports = reportUnusedRules;