Add dataflow documentation graphs
parent
bb7a92bf2b
commit
7775812cfd
|
@ -0,0 +1,287 @@
|
||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
|
||||||
|
module Main(main) where
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import Control.Monad
|
||||||
|
|
||||||
|
import Data.GraphViz
|
||||||
|
import Data.GraphViz.Types
|
||||||
|
import Data.GraphViz.Types.Generalised
|
||||||
|
import Data.GraphViz.Types.Monadic
|
||||||
|
import Data.GraphViz.Printing
|
||||||
|
import Data.GraphViz.Attributes
|
||||||
|
import Data.GraphViz.Attributes.Complete
|
||||||
|
import qualified Data.GraphViz.Attributes.HTML as HTML
|
||||||
|
import Data.GraphViz.Commands
|
||||||
|
|
||||||
|
import qualified Data.Text.Lazy.IO as Text.Lazy.IO
|
||||||
|
import Data.Text.Lazy ( Text )
|
||||||
|
import qualified Data.Text.Lazy as Text.Lazy
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dataTransformationLabeled :: n -> Text -> [(n, Maybe Text)] -> [n] -> DotM n ()
|
||||||
|
dataTransformationLabeled name labelText inputs outputs = do
|
||||||
|
node
|
||||||
|
name
|
||||||
|
[ shape PlainText
|
||||||
|
, textLabel labelText
|
||||||
|
, BgColor []
|
||||||
|
, color White
|
||||||
|
, Margin $ DVal 0.01
|
||||||
|
]
|
||||||
|
inputs `forM_` \(i, l) -> edge
|
||||||
|
i
|
||||||
|
name
|
||||||
|
( [Dir NoDir] ++ case l of
|
||||||
|
Nothing -> []
|
||||||
|
Just t -> [textLabel t]
|
||||||
|
)
|
||||||
|
-- edge inputs name [Dir NoDir]
|
||||||
|
outputs `forM_` \o -> edge name o []
|
||||||
|
|
||||||
|
dataTransformation :: n -> Text -> [n] -> [n] -> DotM n ()
|
||||||
|
dataTransformation name labelText inputs outputs = do
|
||||||
|
node
|
||||||
|
name
|
||||||
|
[ shape PlainText
|
||||||
|
, textLabel labelText
|
||||||
|
, BgColor []
|
||||||
|
, color White
|
||||||
|
, Margin $ DVal 0.01
|
||||||
|
]
|
||||||
|
inputs `forM_` \i -> edge i name [Dir NoDir]
|
||||||
|
outputs `forM_` \o -> edge name o []
|
||||||
|
|
||||||
|
addNote :: n -> [n] -> Text -> DotM n ()
|
||||||
|
addNote noteName refsName foo = do
|
||||||
|
node noteName [textLabel foo, shape PlainText, color White, fontColor Gray40]
|
||||||
|
refsName `forM_` \n -> edge n noteName [Dir NoDir, style dotted, PenWidth 1.0]
|
||||||
|
|
||||||
|
subContext :: n -> Text -> DotM n ()
|
||||||
|
subContext n t = node n [textLabel t, color Black, style solid, shape Ellipse]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
void $ runGraphviz periphery Pdf "periphery.pdf"
|
||||||
|
void $ runGraphviz periphery Svg "periphery.svg"
|
||||||
|
void $ runGraphviz ppm Pdf "ppm.pdf"
|
||||||
|
void $ runGraphviz ppm Svg "ppm.svg"
|
||||||
|
void $ runGraphviz bridocgen Pdf "bridocgen.pdf"
|
||||||
|
void $ runGraphviz bridocgen Svg "bridocgen.svg"
|
||||||
|
where
|
||||||
|
|
||||||
|
periphery :: Data.GraphViz.Types.Generalised.DotGraph String
|
||||||
|
periphery = digraph (Str ("periphery")) $ do
|
||||||
|
|
||||||
|
-- graphAttrs [Layout Neato]
|
||||||
|
nodeAttrs [style filled, color LightGray, shape BoxShape]
|
||||||
|
edgeAttrs [color Gray40, PenWidth 2.0]
|
||||||
|
|
||||||
|
cluster (Num $ Int 0) $ do
|
||||||
|
graphAttrs [textLabel $ "input"]
|
||||||
|
graphAttrs [color LightGray, shape Tab]
|
||||||
|
nodeAttrs [style filled, color LightGray, shape BoxShape]
|
||||||
|
node "stdin/input file" []
|
||||||
|
node "program args" []
|
||||||
|
node "config file" []
|
||||||
|
|
||||||
|
cluster (Num $ Int 1) $ do
|
||||||
|
graphAttrs [textLabel $ "output"]
|
||||||
|
graphAttrs [color LightGray, shape Tab]
|
||||||
|
nodeAttrs [style filled, color LightGray, shape BoxShape]
|
||||||
|
node "output" [textLabel $ "stdout/output file"]
|
||||||
|
node "stderr" [textLabel $ "stderr"]
|
||||||
|
|
||||||
|
node "config" []
|
||||||
|
"program args" --> "config"
|
||||||
|
"config file" --> "config"
|
||||||
|
"default config" --> "config"
|
||||||
|
|
||||||
|
node "syntaxtree" []
|
||||||
|
node "annotations" []
|
||||||
|
node "annotations'" []
|
||||||
|
|
||||||
|
dataTransformation "annTrans"
|
||||||
|
"transform slightly"
|
||||||
|
["annotations"]
|
||||||
|
["annotations'"]
|
||||||
|
|
||||||
|
dataTransformation "parse"
|
||||||
|
"parse via ghc-exactprint"
|
||||||
|
["stdin/input file"]
|
||||||
|
["syntaxtree", "annotations"]
|
||||||
|
|
||||||
|
subContext "ppmcontext" $ Text.Lazy.unlines
|
||||||
|
[ "transformation in"
|
||||||
|
, "PPM monadic context:"
|
||||||
|
, "Reader: Config+Anns"
|
||||||
|
, "Writer: Output+Errors(+Debug output)"
|
||||||
|
]
|
||||||
|
|
||||||
|
"config" --> "ppmcontext"
|
||||||
|
"annotations'" --> "ppmcontext"
|
||||||
|
"syntaxtree" --> "ppmcontext"
|
||||||
|
|
||||||
|
"ppmcontext" --> "output"
|
||||||
|
"ppmcontext" --> "stderr"
|
||||||
|
|
||||||
|
ppm :: Data.GraphViz.Types.Generalised.DotGraph String
|
||||||
|
ppm = digraph (Str ("ppm")) $ do
|
||||||
|
|
||||||
|
-- graphAttrs [Layout Neato]
|
||||||
|
nodeAttrs [style filled, color LightGray, shape BoxShape]
|
||||||
|
edgeAttrs [color Gray40, PenWidth 2.0]
|
||||||
|
|
||||||
|
node
|
||||||
|
"config"
|
||||||
|
[ fontColor Gray40
|
||||||
|
, color Gray90
|
||||||
|
, textLabel $ Text.Lazy.unlines ["config", "(--dump-config)"]
|
||||||
|
]
|
||||||
|
node
|
||||||
|
"annotations"
|
||||||
|
[ fontColor Gray40
|
||||||
|
, color Gray90
|
||||||
|
, textLabel $ Text.Lazy.unlines ["annotations", "(--dump-annotations)"]
|
||||||
|
]
|
||||||
|
|
||||||
|
node "syntaxtree"
|
||||||
|
[textLabel $ Text.Lazy.unlines ["syntaxtree", "(--dump-ast-full)"]]
|
||||||
|
|
||||||
|
node
|
||||||
|
"modulechildren"
|
||||||
|
[textLabel
|
||||||
|
$ Text.Lazy.unlines
|
||||||
|
[ "top-level module"
|
||||||
|
, "children, e.g."
|
||||||
|
, "type sig, bind,"
|
||||||
|
, "data decl etc."
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
dataTransformation "syntaxSplit"
|
||||||
|
"split into"
|
||||||
|
["syntaxtree"]
|
||||||
|
["module header", "modulechildren"]
|
||||||
|
|
||||||
|
subContext "bridocgen" $ Text.Lazy.unlines
|
||||||
|
[ "translation into BriDoc tree"
|
||||||
|
, "in (nested) monadic context"
|
||||||
|
, "(additional) State: NodeAllocIndex"
|
||||||
|
]
|
||||||
|
|
||||||
|
addNote "bridocgen-note"
|
||||||
|
["bridocgen"]
|
||||||
|
"largest portion of\nbrittany src code"
|
||||||
|
|
||||||
|
edge "modulechildren" "bridocgen" [textLabel $ "for each child"]
|
||||||
|
edge "config" "bridocgen" [color Gray70, PenWidth 1.0]
|
||||||
|
edge "annotations" "bridocgen" [color Gray70, PenWidth 1.0]
|
||||||
|
|
||||||
|
node
|
||||||
|
"bridoc-alt"
|
||||||
|
[textLabel $ Text.Lazy.unlines
|
||||||
|
["BriDoc (with alternatives)", "(--dump-bridoc-raw)"]
|
||||||
|
]
|
||||||
|
"bridocgen" --> "bridoc-alt"
|
||||||
|
|
||||||
|
addNote "bridoc-alt-note"
|
||||||
|
["bridoc-alt"]
|
||||||
|
"exponential size,\nbut linear using\n(explicit) sharing"
|
||||||
|
|
||||||
|
node "spacing-info" [textLabel $ "Map from BriDoc node\nto spacing info"]
|
||||||
|
dataTransformation "getSpacing"
|
||||||
|
"getSpacing/getSpacings"
|
||||||
|
["bridoc-alt"]
|
||||||
|
["spacing-info"]
|
||||||
|
|
||||||
|
addNote "spacing-info-note" ["spacing-info"] $ Text.Lazy.unlines
|
||||||
|
[ "roughly: how much cols/rows"
|
||||||
|
, "each Bridoc subtree takes"
|
||||||
|
, "in bottom-up fashion"
|
||||||
|
]
|
||||||
|
|
||||||
|
node "bridoc-no-alt" [textLabel $ "BriDoc without Alts"]
|
||||||
|
dataTransformation "transformAlts"
|
||||||
|
"transformAlts"
|
||||||
|
["bridoc-alt", "spacing-info"]
|
||||||
|
["bridoc-no-alt"]
|
||||||
|
|
||||||
|
edge "config" "transformAlts" [color Gray70, PenWidth 1.0]
|
||||||
|
|
||||||
|
addNote "bridocnoaltnote" ["spacing-info", "bridoc-no-alt"] "linear size"
|
||||||
|
|
||||||
|
edge "bridocnoaltnote"
|
||||||
|
"bridoc-final"
|
||||||
|
[Dir NoDir, style dotted, PenWidth 1.0]
|
||||||
|
|
||||||
|
node
|
||||||
|
"bridoc-final"
|
||||||
|
[textLabel $ Text.Lazy.unlines
|
||||||
|
["transformed BriDoc", "(--dump-bridoc-final)"]
|
||||||
|
]
|
||||||
|
dataTransformation "otherTransforms"
|
||||||
|
"transformFloating\ntransformColumn\ntransformPar"
|
||||||
|
["bridoc-no-alt"]
|
||||||
|
["bridoc-final"]
|
||||||
|
|
||||||
|
addNote "otherTransforms-note"
|
||||||
|
["transformAlts", "otherTransforms"]
|
||||||
|
"most cpu/memory\nusage happens here"
|
||||||
|
|
||||||
|
"bridoc-final" --> "backend"
|
||||||
|
edge "annotations" "backend" [color Gray70, PenWidth 1.0]
|
||||||
|
edge "config" "backend" [color Gray70, PenWidth 1.0]
|
||||||
|
|
||||||
|
subContext "backend" $ Text.Lazy.unlines
|
||||||
|
[ "backend:"
|
||||||
|
, "BriDoc -> Text 'rendering'"
|
||||||
|
, "in (nested) monadic context"
|
||||||
|
, "(additional) State: LayoutState"
|
||||||
|
]
|
||||||
|
|
||||||
|
addNote "backendnote" ["backend"] $ Text.Lazy.unlines
|
||||||
|
["'LayoutState' really is", "just the state for", "the backend only."]
|
||||||
|
|
||||||
|
"backend" --> "output text fragments"
|
||||||
|
|
||||||
|
dataTransformationLabeled
|
||||||
|
"outputConcat"
|
||||||
|
"output concatenation"
|
||||||
|
[("output text fragments", Nothing), ("module header", Just $ "as-is")]
|
||||||
|
["output text"]
|
||||||
|
|
||||||
|
bridocgen :: Data.GraphViz.Types.Generalised.DotGraph String
|
||||||
|
bridocgen = digraph (Str ("bridocgen")) $ do
|
||||||
|
|
||||||
|
-- graphAttrs [Layout Neato]
|
||||||
|
nodeAttrs [style filled, color LightGray, shape BoxShape]
|
||||||
|
edgeAttrs [color Gray40, PenWidth 2.0]
|
||||||
|
|
||||||
|
node "type of node?" [shape DiamondShape, style solid, color Black]
|
||||||
|
|
||||||
|
edge "top-level module children" "type of node?" []
|
||||||
|
|
||||||
|
dataTransformationLabeled "layoutSig"
|
||||||
|
"layoutSig\n+recursion\n(layoutType etc.)"
|
||||||
|
[("type of node?", Just "type sig")]
|
||||||
|
["BriDoc (tree)"]
|
||||||
|
|
||||||
|
dataTransformationLabeled "layoutBind"
|
||||||
|
"layoutBind\n+recursion\n(layoutExpr etc.)"
|
||||||
|
[("type of node?", Just "equation")]
|
||||||
|
["BriDoc (tree)"]
|
||||||
|
|
||||||
|
dataTransformationLabeled "layoutByExact"
|
||||||
|
"layoutByExact"
|
||||||
|
[("type of node?", Just "not handled (yet)")]
|
||||||
|
["BriDoc (tree)"]
|
||||||
|
|
||||||
|
-- backend :: Data.GraphViz.Types.Generalised.DotGraph String
|
||||||
|
-- backend = digraph (Str ("ppm")) $ do
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
import Distribution.Simple
|
||||||
|
main = defaultMain
|
|
@ -0,0 +1,29 @@
|
||||||
|
name: doc-svg-gen
|
||||||
|
version: 0.1.0.0
|
||||||
|
build-type: Simple
|
||||||
|
extra-source-files: ChangeLog.md
|
||||||
|
cabal-version: >=1.10
|
||||||
|
|
||||||
|
executable doc-svg-gen
|
||||||
|
buildable: True
|
||||||
|
main-is: Main.hs
|
||||||
|
-- other-modules:
|
||||||
|
-- other-extensions:
|
||||||
|
build-depends:
|
||||||
|
{ base >=4.9 && <4.10
|
||||||
|
, text
|
||||||
|
, graphviz >=2999.19.0.0
|
||||||
|
}
|
||||||
|
-- hs-source-dirs: src
|
||||||
|
default-language: Haskell2010
|
||||||
|
default-extensions: {
|
||||||
|
}
|
||||||
|
ghc-options: {
|
||||||
|
-Wall
|
||||||
|
-fprof-auto -fprof-cafs -fno-spec-constr
|
||||||
|
-j
|
||||||
|
-fno-warn-unused-imports
|
||||||
|
-fno-warn-orphans
|
||||||
|
-rtsopts
|
||||||
|
-with-rtsopts "-M2G"
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
*.pdf
|
|
@ -0,0 +1,95 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||||
|
-->
|
||||||
|
<!-- Title: bridocgen Pages: 1 -->
|
||||||
|
<svg width="422pt" height="288pt"
|
||||||
|
viewBox="0.00 0.00 422.00 288.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 284)">
|
||||||
|
<title>bridocgen</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-284 418,-284 418,4 -4,4"/>
|
||||||
|
<!-- type of node? -->
|
||||||
|
<g id="node1" class="node">
|
||||||
|
<title>type of node?</title>
|
||||||
|
<polygon fill="none" stroke="#000000" points="204,-207 100.2703,-189 204,-171 307.7297,-189 204,-207"/>
|
||||||
|
<text text-anchor="middle" x="204" y="-185.3" font-family="Times,serif" font-size="14.00" fill="#000000">type of node?</text>
|
||||||
|
</g>
|
||||||
|
<!-- layoutSig -->
|
||||||
|
<g id="node3" class="node">
|
||||||
|
<title>layoutSig</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="124,-120 0,-120 0,-73 124,-73 124,-120"/>
|
||||||
|
<text text-anchor="middle" x="62" y="-107.8" font-family="Times,serif" font-size="14.00" fill="#000000">layoutSig</text>
|
||||||
|
<text text-anchor="middle" x="62" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">+recursion</text>
|
||||||
|
<text text-anchor="middle" x="62" y="-77.8" font-family="Times,serif" font-size="14.00" fill="#000000">(layoutType etc.)</text>
|
||||||
|
</g>
|
||||||
|
<!-- type of node?->layoutSig -->
|
||||||
|
<g id="edge2" class="edge">
|
||||||
|
<title>type of node?->layoutSig</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M178.9575,-175.1317C167.5433,-168.6399 153.9423,-160.6629 142,-153 125.9719,-142.7155 108.6559,-130.6155 94.2468,-120.257"/>
|
||||||
|
<text text-anchor="middle" x="171" y="-141.8" font-family="Times,serif" font-size="14.00" fill="#000000">type sig</text>
|
||||||
|
</g>
|
||||||
|
<!-- layoutBind -->
|
||||||
|
<g id="node5" class="node">
|
||||||
|
<title>layoutBind</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="265.5,-120 142.5,-120 142.5,-73 265.5,-73 265.5,-120"/>
|
||||||
|
<text text-anchor="middle" x="204" y="-107.8" font-family="Times,serif" font-size="14.00" fill="#000000">layoutBind</text>
|
||||||
|
<text text-anchor="middle" x="204" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">+recursion</text>
|
||||||
|
<text text-anchor="middle" x="204" y="-77.8" font-family="Times,serif" font-size="14.00" fill="#000000">(layoutExpr etc.)</text>
|
||||||
|
</g>
|
||||||
|
<!-- type of node?->layoutBind -->
|
||||||
|
<g id="edge4" class="edge">
|
||||||
|
<title>type of node?->layoutBind</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M204,-170.725C204,-156.1933 204,-135.7597 204,-120.0099"/>
|
||||||
|
<text text-anchor="middle" x="235.5" y="-141.8" font-family="Times,serif" font-size="14.00" fill="#000000">equation</text>
|
||||||
|
</g>
|
||||||
|
<!-- layoutByExact -->
|
||||||
|
<g id="node6" class="node">
|
||||||
|
<title>layoutByExact</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="390.5,-114.5 283.5,-114.5 283.5,-78.5 390.5,-78.5 390.5,-114.5"/>
|
||||||
|
<text text-anchor="middle" x="337" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">layoutByExact</text>
|
||||||
|
</g>
|
||||||
|
<!-- type of node?->layoutByExact -->
|
||||||
|
<g id="edge6" class="edge">
|
||||||
|
<title>type of node?->layoutByExact</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M231.8379,-175.7432C244.1924,-169.434 258.6893,-161.4317 271,-153 287.8,-141.4935 305.2353,-126.4106 317.9639,-114.7232"/>
|
||||||
|
<text text-anchor="middle" x="352.5" y="-141.8" font-family="Times,serif" font-size="14.00" fill="#000000">not handled (yet)</text>
|
||||||
|
</g>
|
||||||
|
<!-- top-level module children -->
|
||||||
|
<g id="node2" class="node">
|
||||||
|
<title>top-level module children</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="303.5,-280 104.5,-280 104.5,-244 303.5,-244 303.5,-280"/>
|
||||||
|
<text text-anchor="middle" x="204" y="-258.3" font-family="Times,serif" font-size="14.00" fill="#000000">top-level module children</text>
|
||||||
|
</g>
|
||||||
|
<!-- top-level module children->type of node? -->
|
||||||
|
<g id="edge1" class="edge">
|
||||||
|
<title>top-level module children->type of node?</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M204,-243.9551C204,-235.8828 204,-226.1764 204,-217.1817"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="207.5001,-217.0903 204,-207.0904 200.5001,-217.0904 207.5001,-217.0903"/>
|
||||||
|
</g>
|
||||||
|
<!-- BriDoc (tree) -->
|
||||||
|
<g id="node4" class="node">
|
||||||
|
<title>BriDoc (tree)</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="259,-36 149,-36 149,0 259,0 259,-36"/>
|
||||||
|
<text text-anchor="middle" x="204" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">BriDoc (tree)</text>
|
||||||
|
</g>
|
||||||
|
<!-- layoutSig->BriDoc (tree) -->
|
||||||
|
<g id="edge3" class="edge">
|
||||||
|
<title>layoutSig->BriDoc (tree)</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M104.6047,-72.9474C122.8312,-62.8715 144.0469,-51.1431 162.1855,-41.1157"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="164.2999,-43.9462 171.3583,-36.0449 160.9132,-37.8199 164.2999,-43.9462"/>
|
||||||
|
</g>
|
||||||
|
<!-- layoutBind->BriDoc (tree) -->
|
||||||
|
<g id="edge5" class="edge">
|
||||||
|
<title>layoutBind->BriDoc (tree)</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M204,-72.9474C204,-64.5354 204,-54.9716 204,-46.2075"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="207.5001,-46.0449 204,-36.0449 200.5001,-46.0449 207.5001,-46.0449"/>
|
||||||
|
</g>
|
||||||
|
<!-- layoutByExact->BriDoc (tree) -->
|
||||||
|
<g id="edge7" class="edge">
|
||||||
|
<title>layoutByExact->BriDoc (tree)</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M306.4871,-78.4905C287.7815,-67.45 263.6397,-53.2009 243.4861,-41.3057"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="245.2224,-38.2664 234.8315,-36.1975 241.6643,-44.2947 245.2224,-38.2664"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.7 KiB |
|
@ -0,0 +1,180 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||||
|
-->
|
||||||
|
<!-- Title: periphery Pages: 1 -->
|
||||||
|
<svg width="518pt" height="594pt"
|
||||||
|
viewBox="0.00 0.00 518.00 594.17" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 590.1665)">
|
||||||
|
<title>periphery</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-590.1665 514,-590.1665 514,4 -4,4"/>
|
||||||
|
<g id="clust1" class="cluster">
|
||||||
|
<title>cluster_0</title>
|
||||||
|
<polygon fill="none" stroke="#d3d3d3" points="8,-503.1665 8,-578.1665 384,-578.1665 384,-503.1665 8,-503.1665"/>
|
||||||
|
<text text-anchor="middle" x="196" y="-562.9665" font-family="Times,serif" font-size="14.00" fill="#000000">input</text>
|
||||||
|
</g>
|
||||||
|
<g id="clust2" class="cluster">
|
||||||
|
<title>cluster_1</title>
|
||||||
|
<polygon fill="none" stroke="#d3d3d3" points="162,-8 162,-83 399,-83 399,-8 162,-8"/>
|
||||||
|
<text text-anchor="middle" x="280.5" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">output</text>
|
||||||
|
</g>
|
||||||
|
<!-- stdin/input file -->
|
||||||
|
<g id="node1" class="node">
|
||||||
|
<title>stdin/input file</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="138,-547.1665 16,-547.1665 16,-511.1665 138,-511.1665 138,-547.1665"/>
|
||||||
|
<text text-anchor="middle" x="77" y="-525.4665" font-family="Times,serif" font-size="14.00" fill="#000000">stdin/input file</text>
|
||||||
|
</g>
|
||||||
|
<!-- parse -->
|
||||||
|
<g id="node12" class="node">
|
||||||
|
<title>parse</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="188.5,-475.1665 11.5,-475.1665 11.5,-439.1665 188.5,-439.1665 188.5,-475.1665"/>
|
||||||
|
<text text-anchor="middle" x="100" y="-453.4665" font-family="Times,serif" font-size="14.00" fill="#000000">parse via ghc-exactprint</text>
|
||||||
|
</g>
|
||||||
|
<!-- stdin/input file->parse -->
|
||||||
|
<g id="edge6" class="edge">
|
||||||
|
<title>stdin/input file->parse</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M82.8039,-510.9979C86.2639,-500.1665 90.6442,-486.4541 94.118,-475.5798"/>
|
||||||
|
</g>
|
||||||
|
<!-- program args -->
|
||||||
|
<g id="node2" class="node">
|
||||||
|
<title>program args</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="270,-547.1665 156,-547.1665 156,-511.1665 270,-511.1665 270,-547.1665"/>
|
||||||
|
<text text-anchor="middle" x="213" y="-525.4665" font-family="Times,serif" font-size="14.00" fill="#000000">program args</text>
|
||||||
|
</g>
|
||||||
|
<!-- config -->
|
||||||
|
<g id="node6" class="node">
|
||||||
|
<title>config</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="356.5,-475.1665 295.5,-475.1665 295.5,-439.1665 356.5,-439.1665 356.5,-475.1665"/>
|
||||||
|
<text text-anchor="middle" x="326" y="-453.4665" font-family="Times,serif" font-size="14.00" fill="#000000">config</text>
|
||||||
|
</g>
|
||||||
|
<!-- program args->config -->
|
||||||
|
<g id="edge1" class="edge">
|
||||||
|
<title>program args->config</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M241.5147,-510.9979C255.8342,-501.8739 273.3624,-490.7056 288.7338,-480.9114"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="290.9417,-483.6547 297.4945,-475.3293 287.1801,-477.7512 290.9417,-483.6547"/>
|
||||||
|
</g>
|
||||||
|
<!-- config file -->
|
||||||
|
<g id="node3" class="node">
|
||||||
|
<title>config file</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="376,-547.1665 288,-547.1665 288,-511.1665 376,-511.1665 376,-547.1665"/>
|
||||||
|
<text text-anchor="middle" x="332" y="-525.4665" font-family="Times,serif" font-size="14.00" fill="#000000">config file</text>
|
||||||
|
</g>
|
||||||
|
<!-- config file->config -->
|
||||||
|
<g id="edge2" class="edge">
|
||||||
|
<title>config file->config</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M330.4859,-510.9979C329.8442,-503.2975 329.0812,-494.1409 328.3681,-485.5832"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="331.8529,-485.2546 327.5344,-475.5798 324.8771,-485.8359 331.8529,-485.2546"/>
|
||||||
|
</g>
|
||||||
|
<!-- output -->
|
||||||
|
<g id="node4" class="node">
|
||||||
|
<title>output</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="390.5,-52 249.5,-52 249.5,-16 390.5,-16 390.5,-52"/>
|
||||||
|
<text text-anchor="middle" x="320" y="-30.3" font-family="Times,serif" font-size="14.00" fill="#000000">stdout/output file</text>
|
||||||
|
</g>
|
||||||
|
<!-- stderr -->
|
||||||
|
<g id="node5" class="node">
|
||||||
|
<title>stderr</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="231.5,-52 170.5,-52 170.5,-16 231.5,-16 231.5,-52"/>
|
||||||
|
<text text-anchor="middle" x="201" y="-30.3" font-family="Times,serif" font-size="14.00" fill="#000000">stderr</text>
|
||||||
|
</g>
|
||||||
|
<!-- ppmcontext -->
|
||||||
|
<g id="node13" class="node">
|
||||||
|
<title>ppmcontext</title>
|
||||||
|
<ellipse fill="none" stroke="#000000" cx="215" cy="-139.0833" rx="214.007" ry="48.1667"/>
|
||||||
|
<text text-anchor="middle" x="215" y="-157.8833" font-family="Times,serif" font-size="14.00" fill="#000000">transformation in</text>
|
||||||
|
<text text-anchor="middle" x="215" y="-142.8833" font-family="Times,serif" font-size="14.00" fill="#000000">PPM monadic context:</text>
|
||||||
|
<text text-anchor="middle" x="215" y="-127.8833" font-family="Times,serif" font-size="14.00" fill="#000000">Reader: Config+Anns</text>
|
||||||
|
<text text-anchor="middle" x="215" y="-112.8833" font-family="Times,serif" font-size="14.00" fill="#000000">Writer: Output+Errors(+Debug output)</text>
|
||||||
|
</g>
|
||||||
|
<!-- config->ppmcontext -->
|
||||||
|
<g id="edge9" class="edge">
|
||||||
|
<title>config->ppmcontext</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M324.6965,-439.0662C321.2506,-398.6923 309.7228,-298.8717 276,-223.1665 271.7735,-213.6784 266.3613,-204.2038 260.5108,-195.2166"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="263.2947,-193.0855 254.7916,-186.765 257.4974,-197.0086 263.2947,-193.0855"/>
|
||||||
|
</g>
|
||||||
|
<!-- default config -->
|
||||||
|
<g id="node7" class="node">
|
||||||
|
<title>default config</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="510,-547.1665 394,-547.1665 394,-511.1665 510,-511.1665 510,-547.1665"/>
|
||||||
|
<text text-anchor="middle" x="452" y="-525.4665" font-family="Times,serif" font-size="14.00" fill="#000000">default config</text>
|
||||||
|
</g>
|
||||||
|
<!-- default config->config -->
|
||||||
|
<g id="edge3" class="edge">
|
||||||
|
<title>default config->config</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M420.2049,-510.9979C403.6912,-501.5615 383.3505,-489.9383 365.8014,-479.9102"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="367.3328,-476.7541 356.9138,-474.8316 363.8598,-482.8319 367.3328,-476.7541"/>
|
||||||
|
</g>
|
||||||
|
<!-- syntaxtree -->
|
||||||
|
<g id="node8" class="node">
|
||||||
|
<title>syntaxtree</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="146.5,-403.1665 53.5,-403.1665 53.5,-367.1665 146.5,-367.1665 146.5,-403.1665"/>
|
||||||
|
<text text-anchor="middle" x="100" y="-381.4665" font-family="Times,serif" font-size="14.00" fill="#000000">syntaxtree</text>
|
||||||
|
</g>
|
||||||
|
<!-- syntaxtree->ppmcontext -->
|
||||||
|
<g id="edge11" class="edge">
|
||||||
|
<title>syntaxtree->ppmcontext</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M104.1318,-366.9507C111.5273,-336.188 128.6613,-272.4758 154,-223.1665 158.8594,-213.71 164.7157,-204.1499 170.8519,-195.0353"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="173.7342,-197.0208 176.5454,-186.8057 167.9776,-193.0382 173.7342,-197.0208"/>
|
||||||
|
</g>
|
||||||
|
<!-- annotations -->
|
||||||
|
<g id="node9" class="node">
|
||||||
|
<title>annotations</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="265.5,-403.1665 164.5,-403.1665 164.5,-367.1665 265.5,-367.1665 265.5,-403.1665"/>
|
||||||
|
<text text-anchor="middle" x="215" y="-381.4665" font-family="Times,serif" font-size="14.00" fill="#000000">annotations</text>
|
||||||
|
</g>
|
||||||
|
<!-- annTrans -->
|
||||||
|
<g id="node11" class="node">
|
||||||
|
<title>annTrans</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="281,-331.1665 149,-331.1665 149,-295.1665 281,-295.1665 281,-331.1665"/>
|
||||||
|
<text text-anchor="middle" x="215" y="-309.4665" font-family="Times,serif" font-size="14.00" fill="#000000">transform slightly</text>
|
||||||
|
</g>
|
||||||
|
<!-- annotations->annTrans -->
|
||||||
|
<g id="edge4" class="edge">
|
||||||
|
<title>annotations->annTrans</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M215,-366.9979C215,-356.1665 215,-342.4541 215,-331.5798"/>
|
||||||
|
</g>
|
||||||
|
<!-- annotations' -->
|
||||||
|
<g id="node10" class="node">
|
||||||
|
<title>annotations'</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="267,-259.1665 163,-259.1665 163,-223.1665 267,-223.1665 267,-259.1665"/>
|
||||||
|
<text text-anchor="middle" x="215" y="-237.4665" font-family="Times,serif" font-size="14.00" fill="#000000">annotations'</text>
|
||||||
|
</g>
|
||||||
|
<!-- annotations'->ppmcontext -->
|
||||||
|
<g id="edge10" class="edge">
|
||||||
|
<title>annotations'->ppmcontext</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M215,-222.9161C215,-215.5879 215,-206.6959 215,-197.4771"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="218.5001,-197.404 215,-187.404 211.5001,-197.4041 218.5001,-197.404"/>
|
||||||
|
</g>
|
||||||
|
<!-- annTrans->annotations' -->
|
||||||
|
<g id="edge5" class="edge">
|
||||||
|
<title>annTrans->annotations'</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M215,-294.9979C215,-287.2975 215,-278.1409 215,-269.5832"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="218.5001,-269.5798 215,-259.5798 211.5001,-269.5798 218.5001,-269.5798"/>
|
||||||
|
</g>
|
||||||
|
<!-- parse->syntaxtree -->
|
||||||
|
<g id="edge7" class="edge">
|
||||||
|
<title>parse->syntaxtree</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M100,-438.9979C100,-431.2975 100,-422.1409 100,-413.5832"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="103.5001,-413.5798 100,-403.5798 96.5001,-413.5798 103.5001,-413.5798"/>
|
||||||
|
</g>
|
||||||
|
<!-- parse->annotations -->
|
||||||
|
<g id="edge8" class="edge">
|
||||||
|
<title>parse->annotations</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M129.0194,-438.9979C143.7286,-429.7886 161.7644,-418.4966 177.5122,-408.6371"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="179.3714,-411.6026 185.9899,-403.3293 175.6567,-405.6695 179.3714,-411.6026"/>
|
||||||
|
</g>
|
||||||
|
<!-- ppmcontext->output -->
|
||||||
|
<g id="edge12" class="edge">
|
||||||
|
<title>ppmcontext->output</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M261.972,-92.074C273.2851,-80.7519 284.9444,-69.0834 294.8172,-59.2028"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="297.391,-61.5786 301.9834,-52.0308 292.4393,-56.6308 297.391,-61.5786"/>
|
||||||
|
</g>
|
||||||
|
<!-- ppmcontext->stderr -->
|
||||||
|
<g id="edge13" class="edge">
|
||||||
|
<title>ppmcontext->stderr</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M208.5736,-90.8474C207.2654,-81.0277 205.9302,-71.0061 204.7526,-62.1669"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="208.1967,-61.5146 203.4067,-52.0645 201.258,-62.4391 208.1967,-61.5146"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,353 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
|
||||||
|
-->
|
||||||
|
<!-- Title: ppm Pages: 1 -->
|
||||||
|
<svg width="640pt" height="1316pt"
|
||||||
|
viewBox="0.00 0.00 640.00 1316.12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1312.1198)">
|
||||||
|
<title>ppm</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1312.1198 636,-1312.1198 636,4 -4,4"/>
|
||||||
|
<!-- config -->
|
||||||
|
<g id="node1" class="node">
|
||||||
|
<title>config</title>
|
||||||
|
<polygon fill="#e5e5e5" stroke="#e5e5e5" points="125,-1145.1198 0,-1145.1198 0,-1107.1198 125,-1107.1198 125,-1145.1198"/>
|
||||||
|
<text text-anchor="middle" x="62.5" y="-1129.9198" font-family="Times,serif" font-size="14.00" fill="#666666">config</text>
|
||||||
|
<text text-anchor="middle" x="62.5" y="-1114.9198" font-family="Times,serif" font-size="14.00" fill="#666666">(--dump-config)</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridocgen -->
|
||||||
|
<g id="node7" class="node">
|
||||||
|
<title>bridocgen</title>
|
||||||
|
<ellipse fill="none" stroke="#000000" cx="278.5" cy="-982.6432" rx="187.2667" ry="37.4533"/>
|
||||||
|
<text text-anchor="middle" x="278.5" y="-993.9432" font-family="Times,serif" font-size="14.00" fill="#000000">translation into BriDoc tree</text>
|
||||||
|
<text text-anchor="middle" x="278.5" y="-978.9432" font-family="Times,serif" font-size="14.00" fill="#000000">in (nested) monadic context</text>
|
||||||
|
<text text-anchor="middle" x="278.5" y="-963.9432" font-family="Times,serif" font-size="14.00" fill="#000000">(additional) State: NodeAllocIndex</text>
|
||||||
|
</g>
|
||||||
|
<!-- config->bridocgen -->
|
||||||
|
<g id="edge6" class="edge">
|
||||||
|
<title>config->bridocgen</title>
|
||||||
|
<path fill="none" stroke="#b3b3b3" d="M91.1831,-1107.0672C122.8548,-1086.0295 174.8089,-1051.5194 215.977,-1024.1737"/>
|
||||||
|
<polygon fill="#b3b3b3" stroke="#b3b3b3" points="217.9286,-1027.0792 224.3218,-1018.6307 214.0555,-1021.2483 217.9286,-1027.0792"/>
|
||||||
|
</g>
|
||||||
|
<!-- transformAlts -->
|
||||||
|
<g id="node15" class="node">
|
||||||
|
<title>transformAlts</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="183.5,-659.6665 81.5,-659.6665 81.5,-623.6665 183.5,-623.6665 183.5,-659.6665"/>
|
||||||
|
<text text-anchor="middle" x="132.5" y="-637.9665" font-family="Times,serif" font-size="14.00" fill="#000000">transformAlts</text>
|
||||||
|
</g>
|
||||||
|
<!-- config->transformAlts -->
|
||||||
|
<g id="edge16" class="edge">
|
||||||
|
<title>config->transformAlts</title>
|
||||||
|
<path fill="none" stroke="#b3b3b3" d="M62.5,-1107.0889C62.5,-1079.612 62.5,-1027.2305 62.5,-982.6432 62.5,-982.6432 62.5,-982.6432 62.5,-724.1665 62.5,-700.7101 79.1559,-680.5072 96.2185,-665.965"/>
|
||||||
|
<polygon fill="#b3b3b3" stroke="#b3b3b3" points="98.4248,-668.6822 104.0283,-659.6905 94.0405,-663.2252 98.4248,-668.6822"/>
|
||||||
|
</g>
|
||||||
|
<!-- backend -->
|
||||||
|
<g id="node20" class="node">
|
||||||
|
<title>backend</title>
|
||||||
|
<ellipse fill="none" stroke="#000000" cx="337.5" cy="-284.0833" rx="168.0831" ry="48.1667"/>
|
||||||
|
<text text-anchor="middle" x="337.5" y="-302.8833" font-family="Times,serif" font-size="14.00" fill="#000000">backend:</text>
|
||||||
|
<text text-anchor="middle" x="337.5" y="-287.8833" font-family="Times,serif" font-size="14.00" fill="#000000">BriDoc -> Text 'rendering'</text>
|
||||||
|
<text text-anchor="middle" x="337.5" y="-272.8833" font-family="Times,serif" font-size="14.00" fill="#000000">in (nested) monadic context</text>
|
||||||
|
<text text-anchor="middle" x="337.5" y="-257.8833" font-family="Times,serif" font-size="14.00" fill="#000000">(additional) State: LayoutState</text>
|
||||||
|
</g>
|
||||||
|
<!-- config->backend -->
|
||||||
|
<g id="edge26" class="edge">
|
||||||
|
<title>config->backend</title>
|
||||||
|
<path fill="none" stroke="#b3b3b3" d="M54.0666,-1107.0518C42.8715,-1079.9585 24.5,-1028.5102 24.5,-982.6432 24.5,-982.6432 24.5,-982.6432 24.5,-388.1665 24.5,-351.7839 101.6115,-325.876 179.286,-309.008"/>
|
||||||
|
<polygon fill="#b3b3b3" stroke="#b3b3b3" points="180.1942,-312.3933 189.2495,-306.8931 178.7407,-305.5458 180.1942,-312.3933"/>
|
||||||
|
</g>
|
||||||
|
<!-- annotations -->
|
||||||
|
<g id="node2" class="node">
|
||||||
|
<title>annotations</title>
|
||||||
|
<polygon fill="#e5e5e5" stroke="#e5e5e5" points="538,-1145.1198 373,-1145.1198 373,-1107.1198 538,-1107.1198 538,-1145.1198"/>
|
||||||
|
<text text-anchor="middle" x="455.5" y="-1129.9198" font-family="Times,serif" font-size="14.00" fill="#666666">annotations</text>
|
||||||
|
<text text-anchor="middle" x="455.5" y="-1114.9198" font-family="Times,serif" font-size="14.00" fill="#666666">(--dump-annotations)</text>
|
||||||
|
</g>
|
||||||
|
<!-- annotations->bridocgen -->
|
||||||
|
<g id="edge7" class="edge">
|
||||||
|
<title>annotations->bridocgen</title>
|
||||||
|
<path fill="none" stroke="#b3b3b3" d="M443.0343,-1107.1032C429.7545,-1087.9172 407.2664,-1058.3187 382.5,-1038.1198 375.8321,-1032.6816 368.5489,-1027.5333 361.0325,-1022.7262"/>
|
||||||
|
<polygon fill="#b3b3b3" stroke="#b3b3b3" points="362.4754,-1019.5045 352.1247,-1017.2431 358.806,-1025.4657 362.4754,-1019.5045"/>
|
||||||
|
</g>
|
||||||
|
<!-- annotations->backend -->
|
||||||
|
<g id="edge25" class="edge">
|
||||||
|
<title>annotations->backend</title>
|
||||||
|
<path fill="none" stroke="#b3b3b3" d="M463.9334,-1107.0518C475.1285,-1079.9585 493.5,-1028.5102 493.5,-982.6432 493.5,-982.6432 493.5,-982.6432 493.5,-388.1665 493.5,-361.6062 477.6587,-341.4042 456.0721,-326.2053"/>
|
||||||
|
<polygon fill="#b3b3b3" stroke="#b3b3b3" points="457.823,-323.1683 447.5386,-320.6223 453.9906,-329.026 457.823,-323.1683"/>
|
||||||
|
</g>
|
||||||
|
<!-- syntaxtree -->
|
||||||
|
<g id="node3" class="node">
|
||||||
|
<title>syntaxtree</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="491,-1308.1198 360,-1308.1198 360,-1270.1198 491,-1270.1198 491,-1308.1198"/>
|
||||||
|
<text text-anchor="middle" x="425.5" y="-1292.9198" font-family="Times,serif" font-size="14.00" fill="#000000">syntaxtree</text>
|
||||||
|
<text text-anchor="middle" x="425.5" y="-1277.9198" font-family="Times,serif" font-size="14.00" fill="#000000">(--dump-ast-full)</text>
|
||||||
|
</g>
|
||||||
|
<!-- syntaxSplit -->
|
||||||
|
<g id="node5" class="node">
|
||||||
|
<title>syntaxSplit</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="458.5,-1233.1198 392.5,-1233.1198 392.5,-1197.1198 458.5,-1197.1198 458.5,-1233.1198"/>
|
||||||
|
<text text-anchor="middle" x="425.5" y="-1211.4198" font-family="Times,serif" font-size="14.00" fill="#000000">split into</text>
|
||||||
|
</g>
|
||||||
|
<!-- syntaxtree->syntaxSplit -->
|
||||||
|
<g id="edge1" class="edge">
|
||||||
|
<title>syntaxtree->syntaxSplit</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M425.5,-1270.063C425.5,-1258.7576 425.5,-1244.5032 425.5,-1233.3467"/>
|
||||||
|
</g>
|
||||||
|
<!-- modulechildren -->
|
||||||
|
<g id="node4" class="node">
|
||||||
|
<title>modulechildren</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="349,-1160.1198 214,-1160.1198 214,-1092.1198 349,-1092.1198 349,-1160.1198"/>
|
||||||
|
<text text-anchor="middle" x="281.5" y="-1144.9198" font-family="Times,serif" font-size="14.00" fill="#000000">top-level module</text>
|
||||||
|
<text text-anchor="middle" x="281.5" y="-1129.9198" font-family="Times,serif" font-size="14.00" fill="#000000">children, e.g.</text>
|
||||||
|
<text text-anchor="middle" x="281.5" y="-1114.9198" font-family="Times,serif" font-size="14.00" fill="#000000">type sig, bind,</text>
|
||||||
|
<text text-anchor="middle" x="281.5" y="-1099.9198" font-family="Times,serif" font-size="14.00" fill="#000000">data decl etc.</text>
|
||||||
|
</g>
|
||||||
|
<!-- modulechildren->bridocgen -->
|
||||||
|
<g id="edge5" class="edge">
|
||||||
|
<title>modulechildren->bridocgen</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M280.789,-1092.1179C280.4039,-1073.7 279.9218,-1050.643 279.4995,-1030.4451"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="282.9933,-1030.1079 279.2849,-1020.1833 275.9948,-1030.2543 282.9933,-1030.1079"/>
|
||||||
|
<text text-anchor="middle" x="329" y="-1052.4198" font-family="Times,serif" font-size="14.00" fill="#000000">for each child</text>
|
||||||
|
</g>
|
||||||
|
<!-- syntaxSplit->modulechildren -->
|
||||||
|
<g id="edge3" class="edge">
|
||||||
|
<title>syntaxSplit->modulechildren</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M396.3595,-1197.1094C381.5988,-1187.9864 363.0595,-1176.5282 345.2092,-1165.4957"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="346.8678,-1162.4063 336.5213,-1160.126 343.1876,-1168.3608 346.8678,-1162.4063"/>
|
||||||
|
</g>
|
||||||
|
<!-- module header -->
|
||||||
|
<g id="node6" class="node">
|
||||||
|
<title>module header</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="632,-1074.1198 509,-1074.1198 509,-1038.1198 632,-1038.1198 632,-1074.1198"/>
|
||||||
|
<text text-anchor="middle" x="570.5" y="-1052.4198" font-family="Times,serif" font-size="14.00" fill="#000000">module header</text>
|
||||||
|
</g>
|
||||||
|
<!-- syntaxSplit->module header -->
|
||||||
|
<g id="edge2" class="edge">
|
||||||
|
<title>syntaxSplit->module header</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M458.517,-1208.8324C486.3934,-1201.7762 525.2269,-1187.5251 547.5,-1160.1198 564.8174,-1138.8121 569.7837,-1107.2344 570.9007,-1084.4686"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="574.4015,-1084.4828 571.1755,-1074.3911 567.4041,-1084.292 574.4015,-1084.4828"/>
|
||||||
|
</g>
|
||||||
|
<!-- outputConcat -->
|
||||||
|
<g id="node23" class="node">
|
||||||
|
<title>outputConcat</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="590.5,-109 434.5,-109 434.5,-73 590.5,-73 590.5,-109"/>
|
||||||
|
<text text-anchor="middle" x="512.5" y="-87.3" font-family="Times,serif" font-size="14.00" fill="#000000">output concatenation</text>
|
||||||
|
</g>
|
||||||
|
<!-- module header->outputConcat -->
|
||||||
|
<g id="edge30" class="edge">
|
||||||
|
<title>module header->outputConcat</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M570.5,-1038.1096C570.5,-1013.1024 570.5,-966.4464 570.5,-926.6665 570.5,-926.6665 570.5,-926.6665 570.5,-172.5 570.5,-147.1449 551.6351,-124.202 535.4231,-109.1669"/>
|
||||||
|
<text text-anchor="middle" x="587" y="-585.9665" font-family="Times,serif" font-size="14.00" fill="#000000">as-is</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridocgen-note -->
|
||||||
|
<g id="node8" class="node">
|
||||||
|
<title>bridocgen-note</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="232,-908.1665 91,-908.1665 91,-870.1665 232,-870.1665 232,-908.1665"/>
|
||||||
|
<text text-anchor="middle" x="161.5" y="-892.9665" font-family="Times,serif" font-size="14.00" fill="#666666">largest portion of</text>
|
||||||
|
<text text-anchor="middle" x="161.5" y="-877.9665" font-family="Times,serif" font-size="14.00" fill="#666666">brittany src code</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridocgen->bridocgen-note -->
|
||||||
|
<g id="edge4" class="edge">
|
||||||
|
<title>bridocgen->bridocgen-note</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M232.9297,-946.235C216.7606,-933.3167 199.2042,-919.2901 185.5431,-908.3756"/>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-alt -->
|
||||||
|
<g id="node9" class="node">
|
||||||
|
<title>bridoc-alt</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="453,-908.1665 250,-908.1665 250,-870.1665 453,-870.1665 453,-908.1665"/>
|
||||||
|
<text text-anchor="middle" x="351.5" y="-892.9665" font-family="Times,serif" font-size="14.00" fill="#000000">BriDoc (with alternatives)</text>
|
||||||
|
<text text-anchor="middle" x="351.5" y="-877.9665" font-family="Times,serif" font-size="14.00" fill="#000000">(--dump-bridoc-raw)</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridocgen->bridoc-alt -->
|
||||||
|
<g id="edge8" class="edge">
|
||||||
|
<title>bridocgen->bridoc-alt</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M307.5613,-945.4301C315.1717,-935.685 323.2327,-925.3629 330.3437,-916.2572"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="333.1706,-918.3239 336.5671,-908.2882 327.6536,-914.0154 333.1706,-918.3239"/>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-alt-note -->
|
||||||
|
<g id="node10" class="node">
|
||||||
|
<title>bridoc-alt-note</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="230,-833.1665 91,-833.1665 91,-780.1665 230,-780.1665 230,-833.1665"/>
|
||||||
|
<text text-anchor="middle" x="160.5" y="-817.9665" font-family="Times,serif" font-size="14.00" fill="#666666">exponential size,</text>
|
||||||
|
<text text-anchor="middle" x="160.5" y="-802.9665" font-family="Times,serif" font-size="14.00" fill="#666666">but linear using</text>
|
||||||
|
<text text-anchor="middle" x="160.5" y="-787.9665" font-family="Times,serif" font-size="14.00" fill="#666666">(explicit) sharing</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-alt->bridoc-alt-note -->
|
||||||
|
<g id="edge9" class="edge">
|
||||||
|
<title>bridoc-alt->bridoc-alt-note</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M290.8464,-870.1229C275.5312,-864.79 259.2516,-858.6602 244.5,-852.1665 231.9009,-846.6204 218.6416,-839.8877 206.4746,-833.3209"/>
|
||||||
|
</g>
|
||||||
|
<!-- getSpacing -->
|
||||||
|
<g id="node12" class="node">
|
||||||
|
<title>getSpacing</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="463,-824.6665 286,-824.6665 286,-788.6665 463,-788.6665 463,-824.6665"/>
|
||||||
|
<text text-anchor="middle" x="374.5" y="-802.9665" font-family="Times,serif" font-size="14.00" fill="#000000">getSpacing/getSpacings</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-alt->getSpacing -->
|
||||||
|
<g id="edge10" class="edge">
|
||||||
|
<title>bridoc-alt->getSpacing</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M356.8345,-870.032C360.6298,-856.4183 365.6972,-838.2419 369.4312,-824.8481"/>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-alt->transformAlts -->
|
||||||
|
<g id="edge13" class="edge">
|
||||||
|
<title>bridoc-alt->transformAlts</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M322.1008,-870.0152C307.8118,-859.963 290.8811,-846.8971 277.5,-833.1665 257.2708,-812.4089 256.8073,-803.4164 239.5,-780.1665 207.023,-736.5382 167.65,-686.2078 146.9029,-659.8779"/>
|
||||||
|
</g>
|
||||||
|
<!-- spacing-info -->
|
||||||
|
<g id="node11" class="node">
|
||||||
|
<title>spacing-info</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="465,-743.1665 286,-743.1665 286,-705.1665 465,-705.1665 465,-743.1665"/>
|
||||||
|
<text text-anchor="middle" x="375.5" y="-727.9665" font-family="Times,serif" font-size="14.00" fill="#000000">Map from BriDoc node</text>
|
||||||
|
<text text-anchor="middle" x="375.5" y="-712.9665" font-family="Times,serif" font-size="14.00" fill="#000000">to spacing info</text>
|
||||||
|
</g>
|
||||||
|
<!-- spacing-info-note -->
|
||||||
|
<g id="node13" class="node">
|
||||||
|
<title>spacing-info-note</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="427.5,-668.1665 201.5,-668.1665 201.5,-615.1665 427.5,-615.1665 427.5,-668.1665"/>
|
||||||
|
<text text-anchor="middle" x="314.5" y="-652.9665" font-family="Times,serif" font-size="14.00" fill="#666666">roughly: how much cols/rows</text>
|
||||||
|
<text text-anchor="middle" x="314.5" y="-637.9665" font-family="Times,serif" font-size="14.00" fill="#666666">each Bridoc subtree takes</text>
|
||||||
|
<text text-anchor="middle" x="314.5" y="-622.9665" font-family="Times,serif" font-size="14.00" fill="#666666">in bottom-up fashion</text>
|
||||||
|
</g>
|
||||||
|
<!-- spacing-info->spacing-info-note -->
|
||||||
|
<g id="edge12" class="edge">
|
||||||
|
<title>spacing-info->spacing-info-note</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M361.3521,-705.032C353.2571,-694.0839 342.9804,-680.185 334.1155,-668.1957"/>
|
||||||
|
</g>
|
||||||
|
<!-- spacing-info->transformAlts -->
|
||||||
|
<g id="edge14" class="edge">
|
||||||
|
<title>spacing-info->transformAlts</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M327.2475,-705.0971C309.8379,-698.6006 289.9359,-691.6112 271.5,-686.1665 236.9637,-675.9668 226.6833,-679.4931 192.5,-668.1665 185.2577,-665.7668 177.6964,-662.808 170.4793,-659.7472"/>
|
||||||
|
</g>
|
||||||
|
<!-- bridocnoaltnote -->
|
||||||
|
<g id="node16" class="node">
|
||||||
|
<title>bridocnoaltnote</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="405.5,-485.6665 315.5,-485.6665 315.5,-449.6665 405.5,-449.6665 405.5,-485.6665"/>
|
||||||
|
<text text-anchor="middle" x="360.5" y="-463.9665" font-family="Times,serif" font-size="14.00" fill="#666666">linear size</text>
|
||||||
|
</g>
|
||||||
|
<!-- spacing-info->bridocnoaltnote -->
|
||||||
|
<g id="edge17" class="edge">
|
||||||
|
<title>spacing-info->bridocnoaltnote</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M405.54,-704.9361C417.5365,-695.4686 430.022,-682.9073 436.5,-668.1665 445.977,-646.6015 442.0509,-638.0587 436.5,-615.1665 424.3488,-565.0541 392.0334,-512.907 373.6929,-486.0709"/>
|
||||||
|
</g>
|
||||||
|
<!-- getSpacing->spacing-info -->
|
||||||
|
<g id="edge11" class="edge">
|
||||||
|
<title>getSpacing->spacing-info</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M374.7219,-788.3571C374.8462,-778.1078 375.004,-765.088 375.145,-753.4568"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="378.6467,-753.3265 375.2683,-743.2848 371.6472,-753.2416 378.6467,-753.3265"/>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-no-alt -->
|
||||||
|
<g id="node14" class="node">
|
||||||
|
<title>bridoc-no-alt</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="318.5,-564.1665 160.5,-564.1665 160.5,-528.1665 318.5,-528.1665 318.5,-564.1665"/>
|
||||||
|
<text text-anchor="middle" x="239.5" y="-542.4665" font-family="Times,serif" font-size="14.00" fill="#000000">BriDoc without Alts</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-no-alt->bridocnoaltnote -->
|
||||||
|
<g id="edge18" class="edge">
|
||||||
|
<title>bridoc-no-alt->bridocnoaltnote</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M267.2598,-528.157C286.796,-515.4827 312.8501,-498.5799 332.4503,-485.864"/>
|
||||||
|
</g>
|
||||||
|
<!-- otherTransforms -->
|
||||||
|
<g id="node18" class="node">
|
||||||
|
<title>otherTransforms</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="297,-491.1665 164,-491.1665 164,-444.1665 297,-444.1665 297,-491.1665"/>
|
||||||
|
<text text-anchor="middle" x="230.5" y="-478.9665" font-family="Times,serif" font-size="14.00" fill="#000000">transformFloating</text>
|
||||||
|
<text text-anchor="middle" x="230.5" y="-463.9665" font-family="Times,serif" font-size="14.00" fill="#000000">transformColumn</text>
|
||||||
|
<text text-anchor="middle" x="230.5" y="-448.9665" font-family="Times,serif" font-size="14.00" fill="#000000">transformPar</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-no-alt->otherTransforms -->
|
||||||
|
<g id="edge20" class="edge">
|
||||||
|
<title>bridoc-no-alt->otherTransforms</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M237.4126,-527.9597C236.1663,-517.0896 234.5696,-503.1622 233.2247,-491.4321"/>
|
||||||
|
</g>
|
||||||
|
<!-- transformAlts->bridoc-no-alt -->
|
||||||
|
<g id="edge15" class="edge">
|
||||||
|
<title>transformAlts->bridoc-no-alt</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M152.8777,-623.4789C169.5372,-608.61 193.2609,-587.436 211.67,-571.0054"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="214.0681,-573.5564 219.1981,-564.2864 209.4069,-568.334 214.0681,-573.5564"/>
|
||||||
|
</g>
|
||||||
|
<!-- otherTransforms-note -->
|
||||||
|
<g id="node19" class="node">
|
||||||
|
<title>otherTransforms-note</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="212.5,-407.1665 52.5,-407.1665 52.5,-369.1665 212.5,-369.1665 212.5,-407.1665"/>
|
||||||
|
<text text-anchor="middle" x="132.5" y="-391.9665" font-family="Times,serif" font-size="14.00" fill="#666666">most cpu/memory</text>
|
||||||
|
<text text-anchor="middle" x="132.5" y="-376.9665" font-family="Times,serif" font-size="14.00" fill="#666666">usage happens here</text>
|
||||||
|
</g>
|
||||||
|
<!-- transformAlts->otherTransforms-note -->
|
||||||
|
<g id="edge22" class="edge">
|
||||||
|
<title>transformAlts->otherTransforms-note</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M132.5,-623.4354C132.5,-577.0033 132.5,-454.6225 132.5,-407.2624"/>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-final -->
|
||||||
|
<g id="node17" class="node">
|
||||||
|
<title>bridoc-final</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="419,-407.1665 256,-407.1665 256,-369.1665 419,-369.1665 419,-407.1665"/>
|
||||||
|
<text text-anchor="middle" x="337.5" y="-391.9665" font-family="Times,serif" font-size="14.00" fill="#000000">transformed BriDoc</text>
|
||||||
|
<text text-anchor="middle" x="337.5" y="-376.9665" font-family="Times,serif" font-size="14.00" fill="#000000">(--dump-bridoc-final)</text>
|
||||||
|
</g>
|
||||||
|
<!-- bridocnoaltnote->bridoc-final -->
|
||||||
|
<g id="edge19" class="edge">
|
||||||
|
<title>bridocnoaltnote->bridoc-final</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M355.2809,-449.6267C351.6229,-436.9826 346.7417,-420.1108 343.0191,-407.2435"/>
|
||||||
|
</g>
|
||||||
|
<!-- bridoc-final->backend -->
|
||||||
|
<g id="edge24" class="edge">
|
||||||
|
<title>bridoc-final->backend</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M337.5,-369.076C337.5,-361.41 337.5,-352.1234 337.5,-342.5422"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="341.0001,-342.5064 337.5,-332.5064 334.0001,-342.5065 341.0001,-342.5064"/>
|
||||||
|
</g>
|
||||||
|
<!-- otherTransforms->bridoc-final -->
|
||||||
|
<g id="edge21" class="edge">
|
||||||
|
<title>otherTransforms->bridoc-final</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M262.3138,-444.0291C275.2504,-434.4174 290.2234,-423.2926 303.386,-413.5129"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="305.7951,-416.0833 311.7347,-407.3099 301.6203,-410.4645 305.7951,-416.0833"/>
|
||||||
|
</g>
|
||||||
|
<!-- otherTransforms->otherTransforms-note -->
|
||||||
|
<g id="edge23" class="edge">
|
||||||
|
<title>otherTransforms->otherTransforms-note</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M201.3621,-444.0291C186.9182,-432.3119 169.7027,-418.3463 156.0982,-407.3099"/>
|
||||||
|
</g>
|
||||||
|
<!-- backendnote -->
|
||||||
|
<g id="node21" class="node">
|
||||||
|
<title>backendnote</title>
|
||||||
|
<polygon fill="#ffffff" stroke="transparent" points="349,-199 176,-199 176,-146 349,-146 349,-199"/>
|
||||||
|
<text text-anchor="middle" x="262.5" y="-183.8" font-family="Times,serif" font-size="14.00" fill="#666666">'LayoutState' really is</text>
|
||||||
|
<text text-anchor="middle" x="262.5" y="-168.8" font-family="Times,serif" font-size="14.00" fill="#666666">just the state for</text>
|
||||||
|
<text text-anchor="middle" x="262.5" y="-153.8" font-family="Times,serif" font-size="14.00" fill="#666666">the backend only.</text>
|
||||||
|
</g>
|
||||||
|
<!-- backend->backendnote -->
|
||||||
|
<g id="edge27" class="edge">
|
||||||
|
<title>backend->backendnote</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-dasharray="1,5" d="M305.6932,-236.7619C297.0696,-223.9318 288.0347,-210.4899 280.4703,-199.2358"/>
|
||||||
|
</g>
|
||||||
|
<!-- output text fragments -->
|
||||||
|
<g id="node22" class="node">
|
||||||
|
<title>output text fragments</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="542,-190.5 367,-190.5 367,-154.5 542,-154.5 542,-190.5"/>
|
||||||
|
<text text-anchor="middle" x="454.5" y="-168.8" font-family="Times,serif" font-size="14.00" fill="#000000">output text fragments</text>
|
||||||
|
</g>
|
||||||
|
<!-- backend->output text fragments -->
|
||||||
|
<g id="edge28" class="edge">
|
||||||
|
<title>backend->output text fragments</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M386.1021,-237.7313C400.4522,-224.0455 415.6208,-209.5792 428.0173,-197.7566"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="430.5245,-200.202 435.3456,-190.7676 425.6934,-195.1364 430.5245,-200.202"/>
|
||||||
|
</g>
|
||||||
|
<!-- output text fragments->outputConcat -->
|
||||||
|
<g id="edge29" class="edge">
|
||||||
|
<title>output text fragments->outputConcat</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M467.3721,-154.4125C476.9837,-140.9066 490.061,-122.5307 499.6639,-109.0369"/>
|
||||||
|
</g>
|
||||||
|
<!-- output text -->
|
||||||
|
<g id="node24" class="node">
|
||||||
|
<title>output text</title>
|
||||||
|
<polygon fill="#d3d3d3" stroke="#d3d3d3" points="561,-36 464,-36 464,0 561,0 561,-36"/>
|
||||||
|
<text text-anchor="middle" x="512.5" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">output text</text>
|
||||||
|
</g>
|
||||||
|
<!-- outputConcat->output text -->
|
||||||
|
<g id="edge31" class="edge">
|
||||||
|
<title>outputConcat->output text</title>
|
||||||
|
<path fill="none" stroke="#666666" stroke-width="2" d="M512.5,-72.9551C512.5,-64.8828 512.5,-55.1764 512.5,-46.1817"/>
|
||||||
|
<polygon fill="#666666" stroke="#666666" stroke-width="2" points="516.0001,-46.0903 512.5,-36.0904 509.0001,-46.0904 516.0001,-46.0903"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 23 KiB |
Loading…
Reference in New Issue