diff options
Diffstat (limited to 'src/Fragment.hs')
-rw-r--r-- | src/Fragment.hs | 16 |
1 files changed, 16 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>. -} +{-# 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) |