From a1eee4a1938d7c6431c4d4502b4167d24fc4914c Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 5 Apr 2019 13:04:12 -0700 Subject: [PATCH] Catch missing precedence values in JS Fixes #305 --- cli/src/generate/dsl.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cli/src/generate/dsl.js b/cli/src/generate/dsl.js index 651e6713..55594871 100644 --- a/cli/src/generate/dsl.js +++ b/cli/src/generate/dsl.js @@ -53,6 +53,7 @@ function optional(value) { } function prec(number, rule) { + checkPrecedence(number); checkArguments( arguments.length - 1, prec, @@ -73,6 +74,7 @@ prec.left = function(number, rule) { number = 0; } + checkPrecedence(number); checkArguments( arguments.length - 1, prec.left, @@ -93,6 +95,7 @@ prec.right = function(number, rule) { number = 0; } + checkPrecedence(number); checkArguments( arguments.length - 1, prec.right, @@ -108,6 +111,7 @@ prec.right = function(number, rule) { } prec.dynamic = function(number, rule) { + checkPrecedence(number); checkArguments( arguments.length - 1, prec.dynamic, @@ -371,6 +375,12 @@ function checkArguments(ruleCount, caller, callerName, suffix = '') { } } +function checkPrecedence(value) { + if (value == null) { + throw new Error('Missing precedence value'); + } +} + global.alias = alias; global.blank = blank; global.choice = choice;