From 8875f6d487bbf4f5d363e7cf26dac2b9d8154c8c Mon Sep 17 00:00:00 2001 From: youngcw <calebyoung94@gmail.com> Date: Thu, 1 Jun 2023 05:26:28 -0700 Subject: [PATCH] fix parser bug where by goals couldn't repeat on months/years >9 (#1083) --- packages/loot-core/src/server/budget/goal-template.pegjs | 5 +++-- upcoming-release-notes/1083.md | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 upcoming-release-notes/1083.md diff --git a/packages/loot-core/src/server/budget/goal-template.pegjs b/packages/loot-core/src/server/budget/goal-template.pegjs index 28ce8741c..9c3fd1b80 100644 --- a/packages/loot-core/src/server/budget/goal-template.pegjs +++ b/packages/loot-core/src/server/budget/goal-template.pegjs @@ -24,9 +24,9 @@ expr repeat 'repeat interval' = 'month'i { return { annual: false } } - / months: d _ 'months'i { return { annual: false, repeat: +months } } + / months: positive _ 'months'i { return { annual: false, repeat: +months } } / 'year'i { return { annual: true } } - / years: d _ 'years'i { return { annual: true, repeat: +years } } + / years: positive _ 'years'i { return { annual: true, repeat: +years } } limit = _? upTo _ amount: amount _ 'hold'i { return {amount: amount, hold: true } } / _? upTo _ amount: amount { return {amount: amount, hold: false } } @@ -52,6 +52,7 @@ priority = '-'i number: number _ {return number} _ 'space' = ' '+ d 'digit' = [0-9] number 'number' = $(d+) +positive = $([1-9][0-9]*) amount 'amount' = currencySymbol? _? amount: $(d+ ('.' (d d?)?)?) { return +amount } percent 'percentage' = percent: $(d+) _? '%' { return +percent } year 'year' = $(d d d d) diff --git a/upcoming-release-notes/1083.md b/upcoming-release-notes/1083.md new file mode 100644 index 000000000..cbdd7d205 --- /dev/null +++ b/upcoming-release-notes/1083.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [youngcw] +--- + +Goals: Fix bug that made repeat values >9 fail parsing. -- GitLab