From e9bde36a5feff8c3336b3f790354556fda7faf68 Mon Sep 17 00:00:00 2001 From: David Beckley Date: Thu, 15 Jun 2017 02:19:15 -0700 Subject: [PATCH] Add a custom error message for values without attributes in a record --- src/parser/parser.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/parser/parser.ts b/src/parser/parser.ts index 88ae06741..4e095c944 100644 --- a/src/parser/parser.ts +++ b/src/parser/parser.ts @@ -794,6 +794,27 @@ export class Parser extends chev.Parser { {ALT: () => { return self.SUBRULE(self.attributeComparison); }}, {ALT: () => { return self.SUBRULE(self.attributeNot, [recordVariable]); }}, {ALT: () => { return self.SUBRULE(self.singularAttribute); }}, + {ALT: () => { + let value: any = self.SUBRULE(self.value); + let token = value.from[0]; + + let message = "Value missing attribute"; + + if (value.hasOwnProperty("value")) { + message = `"${value.value}" needs to be labeled with an attribute`; + } + + self.customErrors.push({ + message, + name: "Unlabeled value", + resyncedTokens: [], + context: { + ruleOccurrenceStack: [], + ruleStack: [] + }, + token + }); + }}, ]); });