import re

from eis1600.markdown.re_pattern import AR_STR

ABU_ABI = re.compile(' [و]?[اأ]ب[ويى] ')
UMM = re.compile(' [و]?[اأ]م ')
IBN_IBNA = re.compile('[اإ](بن[ةه]?)(?= )')
BN_BNT = re.compile(' (بن[ت]?) ')
DIN_DAULA = re.compile(' (الدين|الدول[ةه])')
BANU_BANI = re.compile('بن[ويى] ')
YURIFA_K_BI = re.compile('([تي]عرف) (ك' + AR_STR + ') (ب)')

DATES = re.compile('\[[^\]]+\]')
PARENTHESIS = re.compile('\(([^)]+)\)')
QUOTES = re.compile('"[^"]+"')
PUNCTUATION = re.compile('[.،؟!:؛,;?|]')

SPACES = re.compile(' {2,}')

LETTERS = '(?:[أا]لف)|(?:باء)|(?:تاء)|(?:ثاء)|(?:جيم)|(?:حاء)|(?:خاء)|(?:داء)|(?:دال)|(?:ذاء)|(?:ذال)|(?:راء)|(' \
          '?:زاء)|(?:زاي)|(?:زين)|(?:سين)|(?:شين)|(?:صاد)|(?:ضاد)|(?:طاء)|(?:ظاء)|(?:عين)|(?:غين)|(?:فاء)|(?:قاف)|(' \
          '?:كاف)|(?:كاء)|(?:لام)|(?:ميم)|(?:نون)|(?:هاء)|(?:واو)|(?:ياء)|(?:همزة)|(?:تاء مربوطة)|(?:تاء ت[أا]نيث)|(' \
          '?:[أا]لف مقصورة)|(?:تاء ثالثة)|(?:فتحة)|(?:فتح)|(?:مفتوحة)|(?:فتحتين)|(?:مفتوحتين)|(?:ضمة)|(?:ضم)|(' \
          '?:مضمومة)|(?:ضمتين)|(?:مضمومتين)|(?:كسرة)|(?:كسر)|(?:مكسورة، كسرتين)|(?:مكسورتين)|(?:مدة)|(?:شدة)|(' \
          '?:مشددة)|(?:تشديد)|(?:سكون)|(?:ساكنة)|(?:دون)|(?:ثم)|(?:بعدها)|(?:بينهما)|(?:أو)|(?:معجمة)|(?:حروف)|(?:آخر ' \
          'الحروف)|(?:مهملة)|(?:مهملتين)|(?:موحدة)|(?:موحدتين)|(?:مثناة)|(?:مثناتين)|(?:[أا]ولى)|(?:ثانية)|(' \
          '?:ثالثة)|(?:في آخره)|(?:آخره)|(?:[أا]وله)|(?:تحتانية)|(?:تصريف)'

SPELLING = re.compile('(?<= )([بو]?(?:ال)?(?:' + LETTERS + ') ){2,}')
