-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Structure Data Library
--
-- Contains datatypes and quasi-quoting functionaly for standard
-- s-expressions and nested structured/unstructured data
@package stdata
@version 0.0.3
module Data.SExp.Data
data Atom
StringAtom :: String -> Atom
BooleanAtom :: Bool -> Atom
IntegerAtom :: Integer -> Atom
FloatingAtom :: Double -> Atom
SymbolAtom :: String -> Atom
data AntiAtom
-- | Created with QuasiQuotes of form [sexp| @:name |]. Will be
-- converted to expression or pattern of type SExp.
ValueAntiAtom :: String -> AntiAtom
-- | Created with QuasiQuotes of form [sexp| @atom:name |]. Will
-- be converted to expression or pattern of type Atom.
AtomAntiAtom :: String -> AntiAtom
-- | Created with QuasiQuotes of form [sexp| @str:name |]. Will be
-- converted to expression or pattern of type Atom.
StringAntiAtom :: String -> AntiAtom
-- | Created with QuasiQuotes of form [sexp| @bool:name |]. Will
-- be converted to expression or pattern of type Atom.
BooleanAntiAtom :: String -> AntiAtom
-- | Created with QuasiQuotes of form [sexp| @int:name |]. Will be
-- converted to expression or pattern of type Atom.
IntegerAntiAtom :: String -> AntiAtom
-- | Created with QuasiQuotes of form [sexp| @float:name |]. Will
-- be converted to expression or pattern of type Atom.
FloatingAntiAtom :: String -> AntiAtom
-- | Created with QuasiQuotes of form [sexp| @sym:name |]. Will be
-- converted to expression or pattern of type Atom.
SymbolAntiAtom :: String -> AntiAtom
data OpenLink sd sl
NullLink :: OpenLink sd sl
ConsLink :: sd -> sl -> OpenLink sd sl
data OpenSExp sl
AtomSExp :: Atom -> OpenSExp sl
LinkSExp :: sl -> OpenSExp sl
newtype SExp
SExp :: OpenSExp SExpLink -> SExp
unSExp :: SExp -> OpenSExp SExpLink
newtype SExpLink
SExpLink :: OpenLink SExp SExpLink -> SExpLink
unSExpLink :: SExpLink -> OpenLink SExp SExpLink
data DualSExp
PositiveDualSExp :: (OpenSExp DualSExpLink) -> DualSExp
AntiAtomDualSExp :: AntiAtom -> DualSExp
data DualSExpLink
PositiveDualSExpLink :: (OpenLink DualSExp DualSExpLink) -> DualSExpLink
AntiConsDualSExpLink :: String -> DualSExpLink
instance Typeable Atom
instance Typeable AntiAtom
instance Typeable2 OpenLink
instance Typeable1 OpenSExp
instance Typeable SExpLink
instance Typeable SExp
instance Typeable DualSExpLink
instance Typeable DualSExp
instance Eq Atom
instance Ord Atom
instance Show Atom
instance Data Atom
instance Eq AntiAtom
instance Ord AntiAtom
instance Show AntiAtom
instance Data AntiAtom
instance (Eq sd, Eq sl) => Eq (OpenLink sd sl)
instance (Ord sd, Ord sl) => Ord (OpenLink sd sl)
instance (Show sd, Show sl) => Show (OpenLink sd sl)
instance (Data sd, Data sl) => Data (OpenLink sd sl)
instance Eq sl => Eq (OpenSExp sl)
instance Ord sl => Ord (OpenSExp sl)
instance Show sl => Show (OpenSExp sl)
instance Data sl => Data (OpenSExp sl)
instance Eq SExpLink
instance Ord SExpLink
instance Show SExpLink
instance Data SExpLink
instance Eq SExp
instance Ord SExp
instance Show SExp
instance Data SExp
instance Eq DualSExpLink
instance Ord DualSExpLink
instance Show DualSExpLink
instance Data DualSExpLink
instance Eq DualSExp
instance Ord DualSExp
instance Show DualSExp
instance Data DualSExp
module Data.SExp.Parse
data SExpToken
StringToken :: String -> SExpToken
BooleanToken :: Bool -> SExpToken
IntegerToken :: Integer -> SExpToken
FloatingToken :: Double -> SExpToken
SymbolToken :: String -> SExpToken
LParenToken :: SExpToken
RParenToken :: SExpToken
WhitespaceToken :: SExpToken
CommentToken :: String -> SExpToken
AntiConsToken :: SExpToken
AntiValueToken :: String -> SExpToken
AntiAtomToken :: String -> SExpToken
AntiStringToken :: String -> SExpToken
AntiBooleanToken :: String -> SExpToken
AntiIntegerToken :: String -> SExpToken
AntiFloatingToken :: String -> SExpToken
AntiSymbolToken :: String -> SExpToken
stringTokenValueM :: SExpToken -> Maybe String
booleanTokenValueM :: SExpToken -> Maybe Bool
integerTokenValueM :: SExpToken -> Maybe Integer
floatingTokenValueM :: SExpToken -> Maybe Double
symbolTokenValueM :: SExpToken -> Maybe String
lParenTokenValueM :: SExpToken -> Maybe ()
rParenTokenValueM :: SExpToken -> Maybe ()
whitespaceTokenValueM :: SExpToken -> Maybe ()
commentTokenValueM :: SExpToken -> Maybe String
antiConsTokenValueM :: SExpToken -> Maybe ()
antiValueTokenValueM :: SExpToken -> Maybe String
antiAtomTokenValueM :: SExpToken -> Maybe String
antiStringTokenValueM :: SExpToken -> Maybe String
antiBooleanTokenValueM :: SExpToken -> Maybe String
antiIntegerTokenValueM :: SExpToken -> Maybe String
antiFloatingTokenValueM :: SExpToken -> Maybe String
antiSymbolTokenValueM :: SExpToken -> Maybe String
isDiscardSExpToken :: SExpToken -> Bool
sexpTokens :: [Parser SExpToken]
lexSExp :: String -> Either String [(SourcePos, SExpToken)]
parseSExp :: String -> Either String SExp
parseDualSExp :: String -> Either String DualSExp
convertAtomE :: Atom -> Q Exp
convertAntiAtomToValueE :: AntiAtom -> (Q Exp -> Q Exp) -> Q Exp
convertOpenLinkE :: (a -> Q Exp) -> (l -> Q Exp) -> OpenLink a l -> Q Exp
convertAtomP :: Atom -> Q Pat
convertAntiAtomToValueP :: AntiAtom -> (Q Pat -> Q Pat) -> Q Pat
convertOpenLinkP :: (a -> Q Pat) -> (l -> Q Pat) -> OpenLink a l -> Q Pat
sexp :: QuasiQuoter
sexpl :: QuasiQuoter
lexOne :: Ord a => SourcePos -> [Parser a] -> String -> Either String ((SourcePos, a), SourcePos, String)
tokParse :: (String -> Either String [tok]) -> GenParser tok () a -> String -> Either String a
qtokParse :: (String -> Either String [tok]) -> GenParser tok () a -> String -> Q a
instance Eq SExpToken
instance Ord SExpToken
instance Show SExpToken
module Data.SExp
module Data.STData.Data
data OpenSData sl tl
AtomSData :: Atom -> OpenSData sl tl
SLinkSData :: sl -> OpenSData sl tl
TLinkSData :: tl -> OpenSData sl tl
data OpenTData sl
AtomTData :: String -> OpenTData sl
SLinkTData :: sl -> OpenTData sl
newtype SData
SData :: OpenSData SLink TLink -> SData
unSData :: SData -> OpenSData SLink TLink
newtype SLink
SLink :: OpenLink SData SLink -> SLink
unSLink :: SLink -> OpenLink SData SLink
newtype TData
TData :: OpenTData SLink -> TData
unTData :: TData -> OpenTData SLink
newtype TLink
TLink :: OpenLink TData TLink -> TLink
unTLink :: TLink -> OpenLink TData TLink
data DualSData
PositiveDualSData :: (OpenSData DualSLink DualTLink) -> DualSData
AntiAtomDualSData :: AntiAtom -> DualSData
data DualSLink
PositiveDualSLink :: (OpenLink DualSData DualSLink) -> DualSLink
AntiConsDualSLink :: String -> DualSLink
data DualTData
DualTData :: OpenTData DualSLink -> DualTData
unDualTData :: DualTData -> OpenTData DualSLink
data DualTLink
DualTLink :: OpenLink DualTData DualTLink -> DualTLink
unDualTLink :: DualTLink -> OpenLink DualTData DualTLink
sdataToList :: SData -> [SData]
instance Typeable2 OpenSData
instance Typeable1 OpenTData
instance Typeable TLink
instance Typeable TData
instance Typeable SLink
instance Typeable SData
instance Typeable DualTLink
instance Typeable DualTData
instance Typeable DualSLink
instance Typeable DualSData
instance (Eq sl, Eq tl) => Eq (OpenSData sl tl)
instance (Ord sl, Ord tl) => Ord (OpenSData sl tl)
instance (Show sl, Show tl) => Show (OpenSData sl tl)
instance (Data sl, Data tl) => Data (OpenSData sl tl)
instance Eq sl => Eq (OpenTData sl)
instance Ord sl => Ord (OpenTData sl)
instance Show sl => Show (OpenTData sl)
instance Data sl => Data (OpenTData sl)
instance Eq TLink
instance Ord TLink
instance Show TLink
instance Data TLink
instance Eq TData
instance Ord TData
instance Show TData
instance Data TData
instance Eq SLink
instance Ord SLink
instance Show SLink
instance Data SLink
instance Eq SData
instance Ord SData
instance Show SData
instance Data SData
instance Eq DualTLink
instance Ord DualTLink
instance Show DualTLink
instance Data DualTLink
instance Eq DualTData
instance Ord DualTData
instance Show DualTData
instance Data DualTData
instance Eq DualSLink
instance Ord DualSLink
instance Show DualSLink
instance Data DualSLink
instance Eq DualSData
instance Ord DualSData
instance Show DualSData
instance Data DualSData
module Data.STData.Parse
data STDataToken
SExpSTDataToken :: SExpToken -> STDataToken
OpenStructureToken :: STDataToken
CloseStructureToken :: STDataToken
OpenTextToken :: STDataToken
CloseTextToken :: STDataToken
TextToken :: String -> STDataToken
sexpSTDataTokenValueM :: STDataToken -> Maybe SExpToken
openStructureTokenValueM :: STDataToken -> Maybe ()
closeStructureTokenValueM :: STDataToken -> Maybe ()
openTextTokenValueM :: STDataToken -> Maybe ()
closeTextTokenValueM :: STDataToken -> Maybe ()
textTokenValueM :: STDataToken -> Maybe String
isDiscardSTDataToken :: STDataToken -> Bool
structureTokens :: [Parser STDataToken]
textTokens :: [Parser STDataToken]
lexStructure :: String -> Either String [(SourcePos, STDataToken)]
lexText :: String -> Either String [(SourcePos, STDataToken)]
parseSData :: String -> Either String SData
parseSLink :: String -> Either String SLink
parseTData :: String -> Either String TData
parseTLink :: String -> Either String TLink
convertOpenSDataE :: (sl -> Q Exp) -> (tl -> Q Exp) -> OpenSData sl tl -> Q Exp
convertOpenTDataE :: (sl -> Q Exp) -> OpenTData sl -> Q Exp
convertOpenSDataP :: (sl -> Q Pat) -> (tl -> Q Pat) -> OpenSData sl tl -> Q Pat
convertOpenTDataP :: (sl -> Q Pat) -> OpenTData sl -> Q Pat
sdata :: QuasiQuoter
slink :: QuasiQuoter
tdata :: QuasiQuoter
tlink :: QuasiQuoter
instance Eq STDataToken
instance Ord STDataToken
instance Show STDataToken
module Data.STData