From b020a5f7783294770b3ead5b969f108733be7711 Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Wed, 11 Feb 2015 20:39:21 -0500 Subject: Write tangle --- src/Fragment.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/Fragment.hs') diff --git a/src/Fragment.hs b/src/Fragment.hs index 4a12d5c..14172da 100644 --- a/src/Fragment.hs +++ b/src/Fragment.hs @@ -12,7 +12,11 @@ PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . -} +{-# LANGUAGE RecordWildCards #-} module Fragment ( Fragment + , CodeOrReference(..) + , isBlockCode + , blockName, blockContents , parseStdin , parseFile) where @@ -30,6 +34,18 @@ data Fragment = Documentation String | BlockCode String [CodeOrReference] deriving (Eq, Show, Data, Typeable, Generic) +isBlockCode :: Fragment -> Bool +isBlockCode (Documentation {..}) = False +isBlockCode (BlockCode {..}) = True + +blockName :: Fragment -> String +blockName (Documentation {..}) = error "Documentation fragments are unnamed" +blockName (BlockCode name _) = name + +blockContents :: Fragment -> [CodeOrReference] +blockContents (Documentation {..}) = error "Documentation fragments have no code" +blockContents (BlockCode _ body) = body + data CodeOrReference = Code String | Reference String deriving (Eq, Show, Data, Typeable, Generic) -- cgit v1.2.3