Copyright | (c) 2011 Kathleen Fisher <kathleen.fisher@gmail.com> John Launchbury <john.launchbury@gmail.com> |
---|---|
License | MIT |
Maintainer | Karl Cronburg <karl@cs.tufts.edu> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
- data Base_md = Base_md {}
- class Data md => PadsMD md where
- cleanBasePD :: Base_md
- errorBasePD :: String -> String -> Base_md
- mergeBaseMDs :: [Base_md] -> Base_md
- mkErrBasePDfromLoc :: ErrMsg -> Loc -> Base_md
- mkErrBasePD :: ErrMsg -> Maybe Span -> Base_md
- pprBaseMD :: Base_md -> Doc
- myempty :: forall a. Data a => a
Documentation
Base type library support for internal (to Pads) metadata
Eq Base_md Source # | |
Data Base_md Source # | |
Ord Base_md Source # | |
Show Base_md Source # | |
Pretty Base_md Source # | |
PadsMD Base_md Source # | The trivial case for when the Pads parser doesn't need to add any metadata. |
Pads1 () Void Base_md Source # | |
Pads1 () Binary Base_md Source # | |
Pads1 () Text Base_md Source # | |
Pads a a_md => Pads1 () (PMaybe a) (PMaybe_md a_md) Source # | |
Data b => PadsMD (Base_md, b) Source # | If we have a 2-tuple where the first thing is of type Base_md, then the tuple itself is a Pads metadata instance. |
class Data md => PadsMD md where Source #
Meta data type class
get_md_header :: md -> Base_md Source #
replace_md_header :: md -> Base_md -> md Source #
cleanBasePD :: Base_md Source #
Default metadata instance with no errors being reported.
errorBasePD :: String -> String -> Base_md Source #
Default metadata instance with a generic "file error" being reported.
mergeBaseMDs :: [Base_md] -> Base_md Source #
Metadata merge
mkErrBasePDfromLoc :: ErrMsg -> Loc -> Base_md Source #
Metadata for a single parse error occuring at some location Loc
.
mkErrBasePD :: ErrMsg -> Maybe Span -> Base_md Source #
Metadata for a single parse error occuring at some position Span
.
myempty :: forall a. Data a => a Source #
Fancy Generic
magic for defining a function that produces a default value
for any type so long as that type is an instance of Data. We do this by
selecting the first alternative of algebraic data types and recursively
filling in any nested types with default values as well. For instance:
> :set -XDeriveDataTypeable > type Bar = (Int,Char) > data Foo = A Bar Bar | B | C deriving (Data, Show) > myempty :: Foo A (0,'\NUL') (0,'\NUL')