From 7ea26a40b765962727571109dd824fbe0b71e0cd Mon Sep 17 00:00:00 2001 From: Brian Mock Date: Sat, 8 Jul 2017 17:42:34 -0700 Subject: [PATCH] Fixes #189 fixes regexp failure bug --- src/parsimmon.js | 6 +++--- test/core/regexp.test.js | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/parsimmon.js b/src/parsimmon.js index e0a2b1e..49cd7a9 100644 --- a/src/parsimmon.js +++ b/src/parsimmon.js @@ -595,9 +595,9 @@ function regexp(re, group) { var groupMatch = match[group]; return makeSuccess(i + fullMatch.length, groupMatch); } - return makeFailure( - 'valid match group (0 to ' + match.length + ') in ' + expected - ); + var message = + 'valid match group (0 to ' + match.length + ') in ' + expected; + return makeFailure(i, message); } return makeFailure(i, expected); }); diff --git a/test/core/regexp.test.js b/test/core/regexp.test.js index 6697f39..11ce885 100644 --- a/test/core/regexp.test.js +++ b/test/core/regexp.test.js @@ -47,7 +47,11 @@ suite('Parsimmon.regexp', function() { assert.strictEqual(parser0.parse('a1').value, 'a1'); assert.strictEqual(parser1.parse('a1').value, 'a'); assert.strictEqual(parser2.parse('a1').value, '1'); - assert.strictEqual(parser3.parse('a1').status, false); + assert.deepStrictEqual(parser3.parse('a1'), { + status: false, + expected: ['valid match group (0 to 3) in /(\\w)(\\d)/'], + index: {column: 1, line: 1, offset: 0}, + }); }); });