ToXml.hs revision 9f086fbf558eb1b21acbb2578661efbd2ce8d9f8
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens ElknerModule : $Header$
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian MaederDescription : xml output of Hets development graphs
67f0eb92a02309cd70d9c9691a94d96d70cd0b85Christian MaederCopyright : (c) Ewaryst Schulz, Uni Bremen 2009
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuLicense : GPLv2 or higher, see LICENSE.txt
67f0eb92a02309cd70d9c9691a94d96d70cd0b85Christian MaederMaintainer : Ewaryst.Schulz@dfki.de
1d581e55c7ec020a445684310394c3a5fc056e96Christian MaederStability : provisional
67f0eb92a02309cd70d9c9691a94d96d70cd0b85Christian MaederPortability : non-portable(Grothendieck)
67f0eb92a02309cd70d9c9691a94d96d70cd0b85Christian MaederXml of Hets DGs
f4f87c3db7dcb604833cb7813475dcb1313013b3Christian Maeder , showSymbols
773a3d8e40d41417d7c7c92c65c9ff1e49f66ce2Christian Maeder , showSymbolsTh
86d9bb76813208a0855c899a21e5ffca3ad1aa38Christian Maederimport Static.ComputeTheory (getImportNames)
ffb20d566649ab4ce80c225a791c44d8b8487492Hendrik Ibenimport qualified Common.OrderedMap as OMap
adaf5a640e615848c19de372218377a418f954ceFlorian Mossakowskiimport Data.Graph.Inductive.Graph as Graph
67f0eb92a02309cd70d9c9691a94d96d70cd0b85Christian Maederimport qualified Data.Map as Map
67f0eb92a02309cd70d9c9691a94d96d70cd0b85Christian Maederimport qualified Data.Set as Set (toList)
adaf5a640e615848c19de372218377a418f954ceFlorian Mossakowskiimport Data.Char (toLower)
adaf5a640e615848c19de372218377a418f954ceFlorian MossakowskiExport the development graph as xml. If the flag full is True then
86d9bb76813208a0855c899a21e5ffca3ad1aa38Christian Maedersymbols for all nodes are shown as declarations, otherwise (the
f4f87c3db7dcb604833cb7813475dcb1313013b3Christian Maederdefault) only declaration for basic spec nodes are shown that are
367103718689f8d3aa1a8648eba9e50af51c3a94Florian Mossakowskisufficient to reconstruct the development from the xml output. -}
367103718689f8d3aa1a8648eba9e50af51c3a94Florian MossakowskidGraph :: HetcatsOpts -> LibEnv -> LibName -> DGraph -> Element
773a3d8e40d41417d7c7c92c65c9ff1e49f66ce2Christian MaederdGraph full lenv ln dg =
adaf5a640e615848c19de372218377a418f954ceFlorian Mossakowski let body = dgBody dg
ffb20d566649ab4ce80c225a791c44d8b8487492Hendrik Iben ga = globalAnnos dg
ffb20d566649ab4ce80c225a791c44d8b8487492Hendrik Iben lnodes = labNodes body
ffb20d566649ab4ce80c225a791c44d8b8487492Hendrik Iben ledges = labEdges body
67f0eb92a02309cd70d9c9691a94d96d70cd0b85Christian Maeder in add_attrs [ mkAttr "filename" $ getFilePath ln
67f0eb92a02309cd70d9c9691a94d96d70cd0b85Christian Maeder , mkAttr "mime-type" . fromMaybe "unknown" $ mimeType ln
d34c6711bc746459074986c06f7c28b083b4be2fChristian Maeder , mkAttr "libname" . show $ setAngles False $ getLibId ln
5c09a5b695699a46a95795259a7bcbba60aea3bdHendrik Iben , mkAttr "dgnodes" . show $ length lnodes
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder , mkAttr "dgedges" . show $ length ledges
ffb20d566649ab4ce80c225a791c44d8b8487492Hendrik Iben , mkAttr "nextlinkid" . showEdgeId $ getNewEdgeId dg ]
6dcb974e3ccdbc9bcd013a5a923f87069a65e09fFlorian Mossakowski . unode "DGraph" $
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder subnodes "Global" (annotations ga . convertGlobalAnnos
Nothing -> error $ "Static.ToXml.gmorph: " ++ showGlobalDoc ga gm ""
$ Set.toList hidSyms
(axs, thms) = OMap.partition isAxiom thsens in
$ OMap.toList thms)
$ OMap.filter ((`notElem` map sentence
(OMap.elems thsens)) . sentence) gsens
$ unode "ProofBasis" ()) (Set.toList $ proofBasis ls)