MCPcopy Create free account
hub / github.com/Effect-TS/effect / parseNumber

Method parseNumber

packages/effect/src/unstable/encoding/Toml.ts:251–278  ·  view source on GitHub ↗
(token: string)

Source from the content-addressed store, hash-verified

249 }
250
251 private parseNumber(token: string): number | undefined {
252 const normalized = token.replace(/_/g, "")
253 if (/^[+-]?(?:inf|nan)$/.test(token)) {
254 if (normalized.endsWith("nan")) return Number.NaN
255 return normalized[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY
256 }
257 if (/^0x[0-9A-Fa-f](?:_?[0-9A-Fa-f])*$/.test(token)) {
258 return Number.parseInt(normalized.slice(2), 16)
259 }
260 if (/^0o[0-7](?:_?[0-7])*$/.test(token)) {
261 return Number.parseInt(normalized.slice(2), 8)
262 }
263 if (/^0b[01](?:_?[01])*$/.test(token)) {
264 return Number.parseInt(normalized.slice(2), 2)
265 }
266 if (/^[+-]?(?:0|[1-9](?:_?\d)*)$/.test(token)) {
267 return Number(normalized)
268 }
269 if (
270 /^[+-]?(?:(?:0|[1-9](?:_?\d)*)\.\d(?:_?\d)*(?:[eE][+-]?\d(?:_?\d)*)?|(?:0|[1-9](?:_?\d)*)[eE][+-]?\d(?:_?\d)*)$/
271 .test(
272 token
273 )
274 ) {
275 return Number(normalized)
276 }
277 return undefined
278 }
279
280 private parseBasicString(multiline: boolean): string {
281 this.expect("\"")

Callers 1

parseValueMethod · 0.95

Calls 2

NumberInterface · 0.50
replaceMethod · 0.45

Tested by

no test coverage detected