38 lines
1021 B
Haskell
38 lines
1021 B
Haskell
module WordDef
|
|
(
|
|
WordFullDef(WordFullDef),
|
|
WordDefHeader(WordDefHeader),
|
|
WordName(WordName),
|
|
WordType(WordType),
|
|
WordSentence(..),
|
|
renderWordList,
|
|
renderHeader,
|
|
renderFullDef
|
|
) where
|
|
|
|
data WordFullDef = WordFullDef WordDefHeader [WordSentence] deriving Show
|
|
|
|
data WordSentence = WordDefSentence String
|
|
| WordExampleSentence String deriving Show
|
|
|
|
data WordDefHeader = WordDefHeader WordName WordType deriving Show
|
|
data WordName = WordName String deriving Show
|
|
data WordType = WordType String deriving Show
|
|
|
|
renderFullDef :: WordFullDef -> String
|
|
renderFullDef w = show w
|
|
|
|
renderHeader :: WordDefHeader -> String
|
|
renderHeader (WordDefHeader n t) = (getNameString n) ++ (getTypeString t)
|
|
|
|
getNameString :: WordName -> String
|
|
getNameString (WordName s) = s
|
|
|
|
getTypeString :: WordType -> String
|
|
getTypeString (WordType s) = s
|
|
|
|
renderWordList :: [WordDefHeader] -> String
|
|
renderWordList [] = ""
|
|
renderWordList (x:xs) = (renderHeader x) ++ "\n" ++ (renderWordList xs)
|
|
|