Commit bcc8770e authored by Philipp Meyer's avatar Philipp Meyer
Browse files

Added labels and initial marking to DOT printer

parent efd8e52a
......@@ -9,8 +9,8 @@ import Data.ByteString.Builder
import Data.Monoid
import PetriNet
import Structure
-- TODO: mark initially labeled places
renderNet :: PetriNet -> Builder
renderNet net =
"digraph petrinet {\n" <>
......@@ -18,11 +18,14 @@ renderNet net =
mconcat (map transLabel (transitions net)) <>
"}\n"
where
placeLabel p = stringUtf8 p <> " [label=\" \"];\n"
transLabel t = stringUtf8 t <> " [label=\" \", shape=box, " <>
"style=filled, fillcolor=\"" <>
(if checkParallelT net t then "#FF0000" else "#AAAAAA") <>
"\"];\n" <>
placeLabel p = stringUtf8 p <> " [label=\"" <> stringUtf8 p <>
(if initial net p > 0 then
"(" <> integerDec (initial net p) <> ")"
else
""
) <> "\"];\n"
transLabel t = stringUtf8 t <> " [label=\"" <> stringUtf8 t <> "\", shape=box, " <>
"style=filled, fillcolor=\"#AAAAAA\"];\n" <>
mconcat (map (\p -> arcLabel (p,t)) (pre net t)) <>
mconcat (map (\p -> arcLabel (t,p)) (post net t))
arcLabel (a,b) = stringUtf8 a <> " -> " <> stringUtf8 b <> "\n"
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment