diff --git a/src/__tests__/index.js b/src/__tests__/index.js index 82fc839..9f9e2af 100644 --- a/src/__tests__/index.js +++ b/src/__tests__/index.js @@ -890,6 +890,15 @@ test( testValue('calc(1px + 2unknown)', 'calc(1px + 2unknown)') ); +test('decimal unknown units', async () => { + const result = await postcss(reduceCalc()).process( + 'p{width: calc(120rpx - 41.7rpx)}', + postcssOpts + ); + const warnings = result.warnings(); + assert.is(warnings.length, 0); +}); + test( 'error with parsing', testThrows( diff --git a/src/parser.jison b/src/parser.jison index 90f57cd..462cd29 100644 --- a/src/parser.jison +++ b/src/parser.jison @@ -44,7 +44,7 @@ (([0-9]+("."[0-9]+)?|"."[0-9]+)(e(\+|-)[0-9]+)?)dpcm\b return 'RES'; (([0-9]+("."[0-9]+)?|"."[0-9]+)(e(\+|-)[0-9]+)?)dppx\b return 'RES'; (([0-9]+("."[0-9]+)?|"."[0-9]+)(e(\+|-)[0-9]+)?)\% return 'PERCENTAGE'; -(([0-9]+("."[0-9]+)?|"."[0-9]+)(e(\+|-)[0-9]+)?)\b return 'NUMBER'; +(([0-9]+("."[0-9]+)?|"."[0-9]+)(e(\+|-)[0-9]+)?)(?!".")\b return 'NUMBER'; (([0-9]+("."[0-9]+)?|"."[0-9]+)(e(\+|-)[0-9]+)?)-?([a-zA-Z_]|[\240-\377]|(\\[0-9a-fA-F]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-fA-F]))([a-zA-Z0-9_-]|[\240-\377]|(\\[0-9a-fA-F]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-fA-F]))*\b return 'UNKNOWN_DIMENSION';