From 6979aa1013142fded5ad6d93126802906ef67c91 Mon Sep 17 00:00:00 2001 From: darshanr0107 Date: Mon, 16 Jun 2025 14:53:09 +0530 Subject: [PATCH] Fix failing test cases and update error messages for negative and zero inputs --- packages/mermaid/src/diagrams/pie/pieDb.ts | 10 ++-------- packages/parser/src/language/common/common.langium | 4 ++-- packages/parser/src/language/pie/pie.langium | 6 +++++- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/mermaid/src/diagrams/pie/pieDb.ts b/packages/mermaid/src/diagrams/pie/pieDb.ts index 87735b84e..ade44c331 100644 --- a/packages/mermaid/src/diagrams/pie/pieDb.ts +++ b/packages/mermaid/src/diagrams/pie/pieDb.ts @@ -35,15 +35,9 @@ const clear = (): void => { const addSection = ({ label, value }: D3Section): void => { if (value <= 0) { - const error: any = new Error( - `Section "${label}" has invalid value: ${value}. Zero and negative values are not allowed in pie charts. All slice values must be > 0` + throw new Error( + `"${label}" has invalid value: ${value}. Zero and negative values are not allowed in pie charts. All slice values must be > 0.` ); - error.hash = { - text: `pie "${label}": ${value}`, - token: `${value}`, - expected: ['a positive number (> 0)'], - }; - throw error; } if (!sections.has(label)) { sections.set(label, value); diff --git a/packages/parser/src/language/common/common.langium b/packages/parser/src/language/common/common.langium index e6d3d488f..b74ffc34d 100644 --- a/packages/parser/src/language/common/common.langium +++ b/packages/parser/src/language/common/common.langium @@ -17,8 +17,8 @@ terminal ACC_DESCR: /[\t ]*accDescr(?:[\t ]*:([^\n\r]*?(?=%%)|[^\n\r]*)|\s*{([^} terminal ACC_TITLE: /[\t ]*accTitle[\t ]*:(?:[^\n\r]*?(?=%%)|[^\n\r]*)/; terminal TITLE: /[\t ]*title(?:[\t ][^\n\r]*?(?=%%)|[\t ][^\n\r]*|)/; -terminal FLOAT returns number: /-?[0-9]+\.[0-9]+(?!\.)/; -terminal INT returns number: /-?(0|[1-9][0-9]*)(?!\.)/; +terminal FLOAT returns number: /[0-9]+\.[0-9]+(?!\.)/; +terminal INT returns number: /0|[1-9][0-9]*(?!\.)/; terminal NUMBER returns number: FLOAT | INT; terminal STRING returns string: /"([^"\\]|\\.)*"|'([^'\\]|\\.)*'/; diff --git a/packages/parser/src/language/pie/pie.langium b/packages/parser/src/language/pie/pie.langium index a80caa81f..f6802d718 100644 --- a/packages/parser/src/language/pie/pie.langium +++ b/packages/parser/src/language/pie/pie.langium @@ -12,5 +12,9 @@ entry Pie: ; PieSection: - label=STRING ":" value=NUMBER EOL + label=STRING ":" value=NUMBER_PIE EOL ; + +terminal FLOAT_PIE returns number: /-?[0-9]+\.[0-9]+(?!\.)/; +terminal INT_PIE returns number: /-?(0|[1-9][0-9]*)(?!\.)/; +terminal NUMBER_PIE returns number: FLOAT_PIE | INT_PIE; \ No newline at end of file