Browse Source

Talk about "undefined rules" instead of "missing rules" internally

The new terminology is more precise and in line with commonly used
programming languages.

The change involves mainly renaming related compiler pass and files
associated with it.
redux
David Majda 7 years ago
parent
commit
9717dc3417
  1. 2
      lib/compiler/index.js
  2. 4
      lib/compiler/passes/report-undefined-rules.js
  3. 2
      package.json
  4. 2
      spec/api/pegjs-api.spec.js
  5. 2
      spec/index.html
  6. 17
      spec/unit/compiler/passes/report-missing-rules.spec.js
  7. 17
      spec/unit/compiler/passes/report-undefined-rules.spec.js

2
lib/compiler/index.js

@ -19,7 +19,7 @@ var compiler = {
*/
passes: {
check: {
reportMissingRules: require("./passes/report-missing-rules"),
reportUndefinedRules: require("./passes/report-undefined-rules"),
reportDuplicateRules: require("./passes/report-duplicate-rules"),
reportDuplicateLabels: require("./passes/report-duplicate-labels"),
reportLeftRecursion: require("./passes/report-left-recursion"),

4
lib/compiler/passes/report-missing-rules.js → lib/compiler/passes/report-undefined-rules.js

@ -5,7 +5,7 @@ var GrammarError = require("../../grammar-error"),
visitor = require("../visitor");
/* Checks that all referenced rules exist. */
function reportMissingRules(ast) {
function reportUndefinedRules(ast) {
var check = visitor.build({
rule_ref: function(node) {
if (!asts.findRule(ast, node.name)) {
@ -20,4 +20,4 @@ function reportMissingRules(ast) {
check(ast);
}
module.exports = reportMissingRules;
module.exports = reportUndefinedRules;

2
package.json

@ -31,7 +31,7 @@
"lib/compiler/passes/report-duplicate-labels.js",
"lib/compiler/passes/report-infinite-loops.js",
"lib/compiler/passes/report-left-recursion.js",
"lib/compiler/passes/report-missing-rules.js",
"lib/compiler/passes/report-undefined-rules.js",
"lib/compiler/visitor.js",
"lib/grammar-error.js",
"lib/parser.js",

2
spec/api/pegjs-api.spec.js

@ -16,7 +16,7 @@ describe("PEG.js API", function() {
});
it("throws an exception on semantic error", function() {
expect(function() { peg.generate('start = missing'); }).toThrow();
expect(function() { peg.generate('start = undefined'); }).toThrow();
});
describe("allowed start rules", function() {

2
spec/index.html

@ -9,7 +9,7 @@
<script src="helpers.js"></script>
<script src="unit/parser.spec.js"></script>
<script src="unit/compiler/passes/helpers.js"></script>
<script src="unit/compiler/passes/report-missing-rules.spec.js"></script>
<script src="unit/compiler/passes/report-undefined-rules.spec.js"></script>
<script src="unit/compiler/passes/report-duplicate-rules.spec.js"></script>
<script src="unit/compiler/passes/report-duplicate-labels.spec.js"></script>
<script src="unit/compiler/passes/report-left-recursion.spec.js"></script>

17
spec/unit/compiler/passes/report-missing-rules.spec.js

@ -1,17 +0,0 @@
/* global peg */
"use strict";
describe("compiler pass |reportMissingRules|", function() {
var pass = peg.compiler.passes.check.reportMissingRules;
it("reports missing rules", function() {
expect(pass).toReportError('start = missing', {
message: 'Rule "missing" is not defined.',
location: {
start: { offset: 8, line: 1, column: 9 },
end: { offset: 15, line: 1, column: 16 }
}
});
});
});

17
spec/unit/compiler/passes/report-undefined-rules.spec.js

@ -0,0 +1,17 @@
/* global peg */
"use strict";
describe("compiler pass |reportUndefinedRules|", function() {
var pass = peg.compiler.passes.check.reportUndefinedRules;
it("reports undefined rules", function() {
expect(pass).toReportError('start = undefined', {
message: 'Rule "undefined" is not defined.',
location: {
start: { offset: 8, line: 1, column: 9 },
end: { offset: 17, line: 1, column: 18 }
}
});
});
});
Loading…
Cancel
Save