§
!A?hp ã óÖ — d Z ddlmZ ddlZddlZddlZddlZddlZdgZej j
Zej j Z
ej dej ej z ¦ « Z G d„ dej ¦ « ZdS )z/Fraction, infinite-precision, rational numbers.é ©ÚDecimalNÚFractiona¶
\A\s* # optional whitespace at the start,
(?P[-+]?) # an optional sign, then
(?=\d|\.\d) # lookahead for digit or .digit
(?P\d*|\d+(_\d+)*) # numerator (possibly empty)
(?: # followed by
(?:/(?P\d+(_\d+)*))? # an optional denominator
| # or
(?:\.(?P\d*|\d+(_\d+)*))? # an optional fractional part
(?:E(?P[-+]?\d+(_\d+)*))? # and optional exponent
)
\s*\Z # and optional whitespace to finish
c ól ‡ — e Zd ZdZdZd.ddœˆ fd„Zed„ ¦ « Zed „ ¦ « Zd
„ Z d/d„Z
ed
„ ¦ « Zed„ ¦ « Z
d„ Zd„ Zd„ Zd„ Z eeej ¦ « \ ZZd„ Z eeej ¦ « \ ZZd„ Z eeej ¦ « \ ZZd„ Z eeej ¦ « \ Z Z!d„ Z" ee"ej# ¦ « \ Z$Z%d„ Z& ee&e'¦ « \ Z(Z)d„ Z* ee*ej+ ¦ « \ Z,Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2ej3 fd„Z4d„ Z5d „ Z6d!„ Z7d0d"„Z8d#„ Z9d$„ Z:d%„ Z;d&„ Z