Merge pull request #24 from Byron/repeat-edge-cases

'{0}' label is not shown anymore
This commit is contained in:
Jeff Avallone 2016-03-03 07:19:01 -05:00
commit fd27e28918
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)}`;