UNPKG

mathsteps-experimental-fork

Version:

Step by step math solutions. Experimental Fork

34 lines (30 loc) 1.25 kB
'use strict'; Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); function makeExtendedRegExp(inputPatternStr, flags) { const cleanedPatternStr = inputPatternStr.replace(/(^|[^\\])#.*/g, "$1").replace(/(^|[^\\])\s+/g, "$1"); return new RegExp(cleanedPatternStr, flags); } const RGIntOrDecimal = makeExtendedRegExp(String.raw` \d+ # Match one or more digits (integer part) (?:\.\d+)? # Optionally match a decimal point followed by digits `, "g"); const RGVariable = makeExtendedRegExp(String.raw` [a-zA-Z] # Match one alphabetic characters `, "g"); const RGOptionalVariable = makeExtendedRegExp(String.raw` [a-zA-Z]? # Match one alphabetic characters or none `, "g"); const RGNumbersAndOrVar = makeExtendedRegExp(String.raw` (?:${RGIntOrDecimal.source}${RGOptionalVariable.source}) | (?:${RGVariable.source}) `, "g"); const RGFraction = makeExtendedRegExp(String.raw` (?:(${RGNumbersAndOrVar.source})\/)+(${RGNumbersAndOrVar.source}) `, "g"); exports.RGFraction = RGFraction; exports.RGIntOrDecimal = RGIntOrDecimal; exports.RGNumbersAndOrVar = RGNumbersAndOrVar; exports.RGOptionalVariable = RGOptionalVariable; exports.RGVariable = RGVariable; exports.makeExtendedRegExp = makeExtendedRegExp;