-- Copyright (c) 2016-present, Facebook, Inc. -- All rights reserved. -- -- This source code is licensed under the BSD-style license found in the -- LICENSE file in the root directory of this source tree. An additional grant -- of patent rights can be found in the PATENTS file in the same directory. {-# LANGUAGE GADTs #-} {-# LANGUAGE NoRebindableSyntax #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.Time.GA.Rules ( rules ) where import Prelude import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import qualified Duckling.TimeGrain.Types as TG import Duckling.Types ruleArInn :: Rule ruleArInn = Rule { name = "arú inné" , pattern = [ regex "ar(\x00fa|u) inn(\x00e9|e)" ] , prod = \_ -> tt . cycleNth TG.Day $ - 2 } ruleNamedday :: Rule ruleNamedday = Rule { name = "named-day" , pattern = [ regex "luai?n|lu\\.?" ] , prod = \_ -> tt $ dayOfWeek 1 } ruleNollaigNaMban :: Rule ruleNollaigNaMban = Rule { name = "Nollaig na mBan" , pattern = [ regex "(l(\x00e1|a) |an )?nollaig (bheag|na mban)" ] , prod = \_ -> tt $ monthDay 1 6 } ruleNamedmonth12 :: Rule ruleNamedmonth12 = Rule { name = "named-month" , pattern = [ regex "(mh?(\x00ed|i) )?(na )?nollai?g|nol\\.?" ] , prod = \_ -> tt $ month 12 } ruleNamedday2 :: Rule ruleNamedday2 = Rule { name = "named-day" , pattern = [ regex "mh?(\x00e1|a)irt|m(\x00e1|a)?\\.?" ] , prod = \_ -> tt $ dayOfWeek 2 } ruleNamedday6 :: Rule ruleNamedday6 = Rule { name = "named-day" , pattern = [ regex "sathai?rn|sa\\.?" ] , prod = \_ -> tt $ dayOfWeek 6 } ruleNamedmonth7 :: Rule ruleNamedmonth7 = Rule { name = "named-month" , pattern = [ regex "(mh?(\x00ed|i) )?i(\x00fa|u)il|i(\x00fa|u)i\\.?" ] , prod = \_ -> tt $ month 7 } ruleInniu :: Rule ruleInniu = Rule { name = "inniu" , pattern = [ regex "inniu" ] , prod = \_ -> tt $ cycleNth TG.Day 0 } ruleAnOrdinalCycleINdiaidhTime :: Rule ruleAnOrdinalCycleINdiaidhTime = Rule { name = "an i ndiaidh