a
XC?h_ � @ sx d Z ddlmZ ddlZddlZddlZddlZddlZdgZej j
Zej jZ
e�dejejB �ZG dd� dej�ZdS )z+Fraction, infinite-precision, real numbers.� ��DecimalN�FractionaC
\A\s* # optional whitespace at the start, then
(?P[-+]?) # an optional sign, then
(?=\d|\.\d) # lookahead for digit or .digit
(?P\d*) # numerator (possibly empty)
(?: # followed by
(?:/(?P\d+))? # an optional denominator
| # or
(?:\.(?P\d*))? # an optional fractional part
(?:E(?P[-+]?\d+))? # and optional exponent
)
\s*\Z # and optional whitespace to finish
c s� e Zd ZdZdZdRdd�� fdd�Zed d
� �Zedd� �Zd
d� Z dSdd�Z
edd� �Zedd� �Z
dd� Zdd� Zdd� Zdd� Zeeej�\ZZdd� Zeeej�\ZZd d!� Zeeej�\ZZd"d#� Zeeej�\Z Z!d$d%� Z"ee"ej#�\Z$Z%d&d'� Z&ee&e'�\Z(Z)d(d)� Z*ee*ej+�\Z,Z-d*d+� Z.d,d-� Z/d.d/� Z0d0d1� Z1d2d3� Z2d4d5� Z3d6d7� Z4d8d9� Z5dTd:d;�Z6d