summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-01-31 21:15:42 +0000
committerkrasimir <krasimir@chalmers.se>2009-01-31 21:15:42 +0000
commit5e3a1f73927c8849ac1f8e91519f436f385e9e86 (patch)
tree495b6c0b76de140f05bcce3508c8f5fb771cb602 /src
parent0e1215a8f1885997464a5c326b0fc09e493e1f09 (diff)
the dependency graph now shows all dependencies
Diffstat (limited to 'src')
-rw-r--r--src/GF/Infra/Dependencies.hs17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/GF/Infra/Dependencies.hs b/src/GF/Infra/Dependencies.hs
index 1eff523b8..43fe4f458 100644
--- a/src/GF/Infra/Dependencies.hs
+++ b/src/GF/Infra/Dependencies.hs
@@ -3,7 +3,6 @@ module GF.Infra.Dependencies (
) where
import GF.Grammar.Grammar
-import GF.Grammar.PrGrammar
import GF.Infra.Modules
import GF.Infra.Ident
@@ -19,31 +18,34 @@ prDepGraph deps = unlines $ [
"}"
]
where
- mkNode (i,dep) = unwords [prt i, "[",nodeAttr (modtype dep),"]"]
+ mkNode (i,dep) = unwords [prIdent i, "[",nodeAttr (modtype dep),"]"]
nodeAttr ty = case ty of
MTAbstract -> "style = \"solid\", shape = \"box\""
MTConcrete _ -> "style = \"solid\", shape = \"ellipse\""
_ -> "style = \"dashed\", shape = \"ellipse\""
mkArrows (i,dep) =
- [unwords [prt i,"->",prt j,"[",arrowAttr "of","]"] | j <- ofs dep] ++
- [unwords [prt i,"->",prt j,"[",arrowAttr "ex","]"] | j <- extendeds dep] ++
- [unwords [prt i,"->",prt j,"[",arrowAttr "op","]"] | j <- openeds dep]
+ [unwords [prIdent i,"->",prIdent j,"[",arrowAttr "of","]"] | j <- ofs dep] ++
+ [unwords [prIdent i,"->",prIdent j,"[",arrowAttr "ex","]"] | j <- extendeds dep] ++
+ [unwords [prIdent i,"->",prIdent j,"[",arrowAttr "op","]"] | j <- openeds dep] ++
+ [unwords [prIdent i,"->",prIdent j,"[",arrowAttr "ed","]"] | j <- extrads dep]
arrowAttr s = case s of
"of" -> "style = \"solid\", arrowhead = \"empty\""
"ex" -> "style = \"solid\""
"op" -> "style = \"dashed\""
+ "ed" -> "style = \"dotted\""
data ModDeps = ModDeps {
modtype :: ModuleType Ident,
ofs :: [Ident],
extendeds :: [Ident],
openeds :: [Ident],
+ extrads :: [Ident],
functors :: [Ident],
interfaces :: [Ident],
instances :: [Ident]
}
-noModDeps = ModDeps MTAbstract [] [] [] [] [] []
+noModDeps = ModDeps MTAbstract [] [] [] [] [] [] []
grammar2moddeps :: SourceGrammar -> [(Ident,ModDeps)]
grammar2moddeps gr = [(i,depMod m) | (i,m) <- modules gr] where
@@ -54,5 +56,6 @@ grammar2moddeps gr = [(i,depMod m) | (i,m) <- modules gr] where
MTInstance i -> [i]
_ -> [],
extendeds = map fst (extend m),
- openeds = map openedModule (opens m)
+ openeds = map openedModule (opens m),
+ extrads = mexdeps m
}