forked from GitHub/gf-core
the dependency graph now shows all dependencies
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user