1717"+" return ' ADD' ;
1818"-" return ' SUB' ;
1919
20- ([0-9] + ("." [0-9] + )? | "." [0-9] + )px\b return ' LENGTH' ;
20+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )em\b return ' EMS' ;
21+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )ex\b return ' EXS' ;
22+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )ch\b return ' CHS' ;
23+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )rem\b return ' REMS' ;
24+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )vw\b return ' VWS' ;
25+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )vh\b return ' VHS' ;
26+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )vmin\b return ' VMINS' ;
27+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )vmax\b return ' VMAXS' ;
2128([0-9] + ("." [0-9] + )? | "." [0-9] + )cm\b return ' LENGTH' ;
2229([0-9] + ("." [0-9] + )? | "." [0-9] + )mm\b return ' LENGTH' ;
2330([0-9] + ("." [0-9] + )? | "." [0-9] + )in\b return ' LENGTH' ;
2431([0-9] + ("." [0-9] + )? | "." [0-9] + )pt\b return ' LENGTH' ;
2532([0-9] + ("." [0-9] + )? | "." [0-9] + )pc\b return ' LENGTH' ;
33+ ([0-9] + ("." [0-9] + )? | "." [0-9] + )px\b return ' LENGTH' ;
2634([0-9] + ("." [0-9] + )? | "." [0-9] + )deg\b return ' ANGLE' ;
2735([0-9] + ("." [0-9] + )? | "." [0-9] + )grad\b return ' ANGLE' ;
2836([0-9] + ("." [0-9] + )? | "." [0-9] + )rad\b return ' ANGLE' ;
3442([0-9] + ("." [0-9] + )? | "." [0-9] + )dpi\b return ' RES' ;
3543([0-9] + ("." [0-9] + )? | "." [0-9] + )dpcm\b return ' RES' ;
3644([0-9] + ("." [0-9] + )? | "." [0-9] + )dppx\b return ' RES' ;
37- ([0-9] + ("." [0-9] + )? | "." [0-9] + )em\b return ' EMS' ;
38- ([0-9] + ("." [0-9] + )? | "." [0-9] + )ex\b return ' EXS' ;
39- ([0-9] + ("." [0-9] + )? | "." [0-9] + )ch\b return ' CHS' ;
40- ([0-9] + ("." [0-9] + )? | "." [0-9] + )rem\b return ' REMS' ;
41- ([0-9] + ("." [0-9] + )? | "." [0-9] + )vw\b return ' VWS' ;
42- ([0-9] + ("." [0-9] + )? | "." [0-9] + )vh\b return ' VHS' ;
43- ([0-9] + ("." [0-9] + )? | "." [0-9] + )vmin\b return ' VMINS' ;
44- ([0-9] + ("." [0-9] + )? | "." [0-9] + )vmax\b return ' VMAXS' ;
4545([0-9] + ("." [0-9] + )? | "." [0-9] + )\% return ' PERCENTAGE' ;
4646([0-9] + ("." [0-9] + )? | "." [0-9] + )\b return ' NUMBER' ;
4747
@@ -77,11 +77,6 @@ expression
7777 | value { $$ = $1 ; }
7878 ;
7979
80- value
81- : NUMBER { $$ = { type: ' Value' , value: parseFloat ($1 ) }; }
82- | SUB NUMBER { $$ = { type: ' Value' , value: parseFloat ($2 ) * - 1 }; }
83- ;
84-
8580 function
8681 : FUNCTION { $$ = { type: ' Function' , value: $1 }; }
8782 ;
@@ -101,5 +96,12 @@ expression
10196 | VMINS { $$ = { type: ' VminValue' , value: parseFloat ($1 ), unit: ' vmin' }; }
10297 | VMAXS { $$ = { type: ' VmaxValue' , value: parseFloat ($1 ), unit: ' vmax' }; }
10398 | PERCENTAGE { $$ = { type: ' PercentageValue' , value: parseFloat ($1 ), unit: ' %' }; }
99+ | ADD css_value { var prev = $2 ; $$ = prev; }
104100 | SUB css_value { var prev = $2 ; prev .value *= - 1 ; $$ = prev; }
105101 ;
102+
103+ value
104+ : NUMBER { $$ = { type: ' Value' , value: parseFloat ($1 ) }; }
105+ | ADD NUMBER { $$ = { type: ' Value' , value: parseFloat ($2 ) }; }
106+ | SUB NUMBER { $$ = { type: ' Value' , value: parseFloat ($2 ) * - 1 }; }
107+ ;
0 commit comments