"use strict"; var GrammarError = require("../../grammar-error"), asts = require("../asts"), visitor = require("../visitor"); /* Checks that all referenced rules exist. */ function reportMissingRules(ast) { var check = visitor.build({ rule_ref: function(node) { if (!asts.findRule(ast, node.name)) { throw new GrammarError( "Referenced rule \"" + node.name + "\" does not exist.", node.location ); } } }); check(ast); } module.exports = reportMissingRules;