dot: better support of state-based acceptance
* src/tgbaalgos/dotty.cc: Here. * src/tgbaalgos/sbacc.cc: Make the produced automata as state-based. * src/tgbatest/readsave.test: Add a test.
This commit is contained in:
parent
fb7b7a944a
commit
ead2ca0158
3 changed files with 198 additions and 33 deletions
|
|
@ -403,3 +403,109 @@ digraph G {
|
|||
}
|
||||
EOF
|
||||
diff output expected
|
||||
|
||||
|
||||
cat >in <<EOF
|
||||
HOA: v1
|
||||
States: 10
|
||||
Start: 0
|
||||
AP: 2 "a" "b"
|
||||
Acceptance: 4 Fin(0) | (Fin(1) & Inf(2)) | Fin(3)
|
||||
--BODY--
|
||||
State: 0
|
||||
[!0&!1] 1
|
||||
[0&!1] 2
|
||||
[!0&1] 3
|
||||
[0&1] 4
|
||||
State: 1 "test me" {0 3}
|
||||
[!0&!1] 1
|
||||
[0&!1] 2
|
||||
[!0&1] 6
|
||||
[0&1] 7
|
||||
State: 2 {0 2 3}
|
||||
[!0&!1] 1
|
||||
[0&!1] 2
|
||||
[!0&1] 6
|
||||
[0&1] 7
|
||||
State: 3 {3}
|
||||
[t] 5
|
||||
State: 4 "hihi" {2 3}
|
||||
[t] 5
|
||||
State: 5 {1 3}
|
||||
[t] 5
|
||||
State: 6 {0}
|
||||
[!0&!1] 8
|
||||
[!0&1] 6
|
||||
[0&!1] 9
|
||||
[0&1] 7
|
||||
State: 7 {0 2}
|
||||
[!0&!1] 8
|
||||
[!0&1] 6
|
||||
[0&!1] 9
|
||||
[0&1] 7
|
||||
State: 8 {0 3}
|
||||
[!0&!1] 8
|
||||
[!0&1] 6
|
||||
[0&!1] 9
|
||||
[0&1] 7
|
||||
State: 9 {0 2 3}
|
||||
[!0&!1] 8
|
||||
[!0&1] 6
|
||||
[0&!1] 9
|
||||
[0&1] 7
|
||||
--END--
|
||||
EOF
|
||||
|
||||
cat >expected <<EOF
|
||||
digraph G {
|
||||
rankdir=LR
|
||||
label="Fin(⓿) | (Fin(❶) & Inf(❷)) | Fin(❸)"
|
||||
labelloc="t"
|
||||
I [label="", style=invis, width=0]
|
||||
I -> 0
|
||||
0 [label="0"]
|
||||
0 -> 1 [label="!a & !b"]
|
||||
0 -> 2 [label="a & !b"]
|
||||
0 -> 3 [label="!a & b"]
|
||||
0 -> 4 [label="a & b"]
|
||||
1 [label="test me\n⓿❸"]
|
||||
1 -> 1 [label="!a & !b"]
|
||||
1 -> 2 [label="a & !b"]
|
||||
1 -> 6 [label="!a & b"]
|
||||
1 -> 7 [label="a & b"]
|
||||
2 [label="2\n⓿❷❸"]
|
||||
2 -> 1 [label="!a & !b"]
|
||||
2 -> 2 [label="a & !b"]
|
||||
2 -> 6 [label="!a & b"]
|
||||
2 -> 7 [label="a & b"]
|
||||
3 [label="3\n❸"]
|
||||
3 -> 5 [label="1"]
|
||||
4 [label="hihi\n❷❸"]
|
||||
4 -> 5 [label="1"]
|
||||
5 [label="5\n❶❸"]
|
||||
5 -> 5 [label="1"]
|
||||
6 [label="6\n⓿"]
|
||||
6 -> 8 [label="!a & !b"]
|
||||
6 -> 6 [label="!a & b"]
|
||||
6 -> 9 [label="a & !b"]
|
||||
6 -> 7 [label="a & b"]
|
||||
7 [label="7\n⓿❷"]
|
||||
7 -> 8 [label="!a & !b"]
|
||||
7 -> 6 [label="!a & b"]
|
||||
7 -> 9 [label="a & !b"]
|
||||
7 -> 7 [label="a & b"]
|
||||
8 [label="8\n⓿❸"]
|
||||
8 -> 8 [label="!a & !b"]
|
||||
8 -> 6 [label="!a & b"]
|
||||
8 -> 9 [label="a & !b"]
|
||||
8 -> 7 [label="a & b"]
|
||||
9 [label="9\n⓿❷❸"]
|
||||
9 -> 8 [label="!a & !b"]
|
||||
9 -> 6 [label="!a & b"]
|
||||
9 -> 9 [label="a & !b"]
|
||||
9 -> 7 [label="a & b"]
|
||||
}
|
||||
EOF
|
||||
|
||||
$autfilt --dot=ba in >out
|
||||
diff out expected
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue