packages feed

language-ocaml-0.2.0: test/Language/OCaml/Parser/LetBinding/Test.hs

{-# LANGUAGE QuasiQuotes #-}

module Language.OCaml.Parser.LetBinding.Test
  ( testStrings
  ) where

import Data.String.Interpolate

import qualified Language.OCaml.Parser.ExtAttributes.Test as ExtAttributes
import qualified Language.OCaml.Parser.LetBindingBody.Test as LetBindingBody
import qualified Language.OCaml.Parser.Payload.Test as Payload
import qualified Language.OCaml.Parser.PostItemAttributes.Test as PostItemAttributes
import qualified Language.OCaml.Parser.RecFlag.Test as RecFlag

limit :: Int
limit = 10

testStrings :: [String] -> [String]
testStrings structure = []
  ++ [ [i|let #{ea} #{rf} #{lbb} #{pia}|]
       | ea  <- extAttributes
       , rf  <- recFlag
       , lbb <- letBindingBody
       , pia <- postItemAttributes
       ]
  where
    extAttributes      = take limit $ ExtAttributes.testStrings
    recFlag            = take limit $ RecFlag.testStrings
    letBindingBody     = take limit $ LetBindingBody.testStrings
    payload            = take limit $ Payload.testStrings structure
    postItemAttributes = take limit $ PostItemAttributes.testStrings payload