parseaut, dot: install a highlighting framework

* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll:
Parse "spot.highlight.edges" and "spot.highlight.states" to
fill the "highlight-edges" and "highlight-states" properties.
* spot/twaalgos/dot.cc: Use these properties to highlight states.
* tests/core/readsave.test: Add a small test.
This commit is contained in:
Alexandre Duret-Lutz 2016-02-04 23:02:28 +01:00
parent 91bb93eeaa
commit 348f7cce0b
4 changed files with 126 additions and 35 deletions

View file

@ -468,46 +468,46 @@ digraph G {
I [label="", style=invis, width=0]
I -> 0
0 [label="0"]
0 -> 1 [label="!a & !b",taillabel="0"]
0 -> 2 [label="a & !b",taillabel="1"]
0 -> 3 [label="!a & b",taillabel="2"]
0 -> 4 [label="a & b",taillabel="3"]
0 -> 1 [label="!a & !b", taillabel="0"]
0 -> 2 [label="a & !b", taillabel="1"]
0 -> 3 [label="!a & b", taillabel="2"]
0 -> 4 [label="a & b", taillabel="3"]
1 [label="test me\n⓿❸"]
1 -> 1 [label="!a & !b",taillabel="0"]
1 -> 2 [label="a & !b",taillabel="1"]
1 -> 6 [label="!a & b",taillabel="2"]
1 -> 7 [label="a & b",taillabel="3"]
1 -> 1 [label="!a & !b", taillabel="0"]
1 -> 2 [label="a & !b", taillabel="1"]
1 -> 6 [label="!a & b", taillabel="2"]
1 -> 7 [label="a & b", taillabel="3"]
2 [label="2\n⓿❷❸"]
2 -> 1 [label="!a & !b",taillabel="0"]
2 -> 2 [label="a & !b",taillabel="1"]
2 -> 6 [label="!a & b",taillabel="2"]
2 -> 7 [label="a & b",taillabel="3"]
2 -> 1 [label="!a & !b", taillabel="0"]
2 -> 2 [label="a & !b", taillabel="1"]
2 -> 6 [label="!a & b", taillabel="2"]
2 -> 7 [label="a & b", taillabel="3"]
3 [label="3\n❸"]
3 -> 5 [label="1",taillabel="0"]
3 -> 5 [label="1", taillabel="0"]
4 [label="hihi\n❷❸"]
4 -> 5 [label="1",taillabel="0"]
4 -> 5 [label="1", taillabel="0"]
5 [label="5\n❶❸"]
5 -> 5 [label="1",taillabel="0"]
5 -> 5 [label="1", taillabel="0"]
6 [label="6\n⓿"]
6 -> 8 [label="!a & !b",taillabel="0"]
6 -> 6 [label="!a & b",taillabel="1"]
6 -> 9 [label="a & !b",taillabel="2"]
6 -> 7 [label="a & b",taillabel="3"]
6 -> 8 [label="!a & !b", taillabel="0"]
6 -> 6 [label="!a & b", taillabel="1"]
6 -> 9 [label="a & !b", taillabel="2"]
6 -> 7 [label="a & b", taillabel="3"]
7 [label="7\n⓿❷"]
7 -> 8 [label="!a & !b",taillabel="0"]
7 -> 6 [label="!a & b",taillabel="1"]
7 -> 9 [label="a & !b",taillabel="2"]
7 -> 7 [label="a & b",taillabel="3"]
7 -> 8 [label="!a & !b", taillabel="0"]
7 -> 6 [label="!a & b", taillabel="1"]
7 -> 9 [label="a & !b", taillabel="2"]
7 -> 7 [label="a & b", taillabel="3"]
8 [label="8\n⓿❸"]
8 -> 8 [label="!a & !b",taillabel="0"]
8 -> 6 [label="!a & b",taillabel="1"]
8 -> 9 [label="a & !b",taillabel="2"]
8 -> 7 [label="a & b",taillabel="3"]
8 -> 8 [label="!a & !b", taillabel="0"]
8 -> 6 [label="!a & b", taillabel="1"]
8 -> 9 [label="a & !b", taillabel="2"]
8 -> 7 [label="a & b", taillabel="3"]
9 [label="9\n⓿❷❸"]
9 -> 8 [label="!a & !b",taillabel="0"]
9 -> 6 [label="!a & b",taillabel="1"]
9 -> 9 [label="a & !b",taillabel="2"]
9 -> 7 [label="a & b",taillabel="3"]
9 -> 8 [label="!a & !b", taillabel="0"]
9 -> 6 [label="!a & b", taillabel="1"]
9 -> 9 [label="a & !b", taillabel="2"]
9 -> 7 [label="a & b", taillabel="3"]
}
EOF
@ -961,3 +961,47 @@ State: 1
EOF
test `autfilt -c --is-inherently-weak input8` = 0
test `autfilt -c --is-weak input8` = 0
cat >input9 <<EOF
HOA: v1
name: "a U (b U c)"
States: 3
Start: 2
AP: 3 "a" "b" "c"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc deterministic
properties: stutter-invariant terminal
spot.highlight.edges: 1 0 2 1 3 2 4 3
spot.highlight.states: 0 0 2 3
--BODY--
State: 0 {0}
[t] 0
State: 1
[2] 0
[1&!2] 1
State: 2
[2] 0
[!0&1&!2] 1
[0&!2] 2
--END--
EOF
autfilt -d input9 > output9
cat >expected9 <<EOF
digraph G {
rankdir=LR
node [shape="circle"]
I [label="", style=invis, width=0]
I -> 2
0 [label="0", peripheries=2, style=bold, color="#5DA5DA"]
0 -> 0 [label="1", style=bold, color="#5DA5DA"]
1 [label="1"]
1 -> 0 [label="c", style=bold, color="#F17CB0"]
1 -> 1 [label="b & !c", style=bold, color="#FAA43A"]
2 [label="2", style=bold, color="#B276B2"]
2 -> 0 [label="c", style=bold, color="#B276B2"]
2 -> 1 [label="!a & b & !c"]
2 -> 2 [label="a & !c"]
}
EOF
diff output9 expected9