'{0}' label is not shown anymore

Previously, '{0}' would be labelled as '-1 Times', which is not actually the case.
Also I am not sure to best visualize such a pattern, right now, except for the label,
'a{0}' looks similar to 'a?', even though they don't have the same effect.
This commit is contained in:
Sebastian Thiel 2016-01-03 18:27:34 +01:00 committed by Jeff Avallone
parent a624c00554
commit 388c625e47
2 changed files with 15 additions and 0 deletions

View File

@ -54,6 +54,13 @@ describe('parser/javascript/repeat.js', function() {
hasSkip: false, hasSkip: false,
hasLoop: false hasLoop: false
}, },
'{0}': {
minimum: 0,
maximum: 0,
greedy: true,
hasSkip: true,
hasLoop: false
},
'{1}?': { '{1}?': {
minimum: 1, minimum: 1,
maximum: 1, maximum: 1,
@ -202,6 +209,11 @@ describe('parser/javascript/repeat.js', function() {
maximum: -1, maximum: -1,
label: undefined label: undefined
}, },
{
minimum: 0,
maximum: 0,
label: undefined
},
{ {
minimum: 2, minimum: 2,
maximum: -1, maximum: -1,

View File

@ -33,6 +33,9 @@ export default {
label: { label: {
get: function() { get: function() {
if (this.minimum === this.maximum) { if (this.minimum === this.maximum) {
if (this.minimum === 0) {
return undefined;
}
return formatTimes(this.minimum - 1); return formatTimes(this.minimum - 1);
} else if (this.minimum <= 1 && this.maximum >= 2) { } else if (this.minimum <= 1 && this.maximum >= 2) {
return `at most ${formatTimes(this.maximum - 1)}`; return `at most ${formatTimes(this.maximum - 1)}`;