{-# LANGUAGE OverloadedStrings #-}

module NLP.Morphology.PT.Verb.Irregular where

import           NLP.Morphology.PT.Verb.Base
import           NLP.Morphology.PT.Common

shallowI :: VStructure -> VStructure
shallowI v@(Pers c _ _ _ _) = case c of
  "fazer" -> case v of
    Pers _ _ t m@IPRS p@P1 -> Pers c (Root Irr "FAÇ") t m p
    Pers _ _ t m@IPRF p    -> Pers c (Root Irr "FIZ") t m p
    Pers _ _ t m@IPPF p    -> Pers c (Root Irr "FIZ") t m p
    Pers _ _ t m@SIPF p    -> Pers c (Root Irr "FIZ") t m p
    Pers _ _ t m@SFUT p    -> Pers c (Root Irr "FIZ") t m p
    _                      -> v
  _ -> v
shallowI v = v

toCompI v = case v of
  Pers c (Root Reg "DIZ")  E' IFUT p -> Comp c (Impr c (Root Irr "D") I' INF)  (Pers "haver" (Root Cmp "hav") E' IPRS p)
  Pers c (Root Reg "DIZ")  E' IFPR p -> Comp c (Impr c (Root Irr "D") I' INF)  (Pers "haver" (Root Cmp "hav") E' IIPF p)
  Pers c (Root Reg "FAZ")  E' IFUT p -> Comp c (Impr c (Root Irr "F") A' INF)  (Pers "haver" (Root Cmp "hav") E' IPRS p)
  Pers c (Root Reg "FAZ")  E' IFPR p -> Comp c (Impr c (Root Irr "F") A' INF)  (Pers "haver" (Root Cmp "hav") E' IIPF p)
  Pers c (Root Reg "TRAZ") E' IFUT p -> Comp c (Impr c (Root Irr "TR") A' INF) (Pers "haver" (Root Cmp "hav") E' IPRS p)
  Pers c (Root Reg "TRAZ") E' IFPR p -> Comp c (Impr c (Root Irr "TR") A' INF) (Pers "haver" (Root Cmp "hav") E' IIPF p)
  _ -> v