mirror of
https://github.com/facebook/duckling.git
synced 2024-11-24 15:43:20 +03:00
bf89e34365
Reviewed By: JoelMarcey Differential Revision: D15439223 fbshipit-source-id: c5af3cb06318748142fe503945b38beffadfc28a
36 lines
871 B
Haskell
36 lines
871 B
Haskell
-- 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.
|
|
|
|
|
|
{-# LANGUAGE GADTs #-}
|
|
|
|
module Duckling.Ordinal.Helpers
|
|
( ordinal
|
|
, oneOf
|
|
) where
|
|
|
|
import Prelude
|
|
|
|
import Duckling.Dimensions.Types
|
|
import Duckling.Ordinal.Types (OrdinalData (..))
|
|
import Duckling.Types
|
|
import qualified Duckling.Ordinal.Types as TOrdinal
|
|
|
|
-- -----------------------------------------------------------------
|
|
-- Patterns
|
|
|
|
oneOf :: [Int] -> PatternItem
|
|
oneOf vs = Predicate $ \x ->
|
|
case x of
|
|
(Token Ordinal OrdinalData {TOrdinal.value = v}) -> elem v vs
|
|
_ -> False
|
|
|
|
-- -----------------------------------------------------------------
|
|
-- Production
|
|
|
|
ordinal :: Int -> Token
|
|
ordinal x = Token Ordinal OrdinalData {TOrdinal.value = x}
|