From: notifies s. of c. c. <per...@li...> - 2007-02-09 17:25:12
|
Revision: 84 http://svn.sourceforge.net/perl-flat/?rev=84&view=rev Author: estrabd Date: 2007-02-09 09:16:21 -0800 (Fri, 09 Feb 2007) Log Message: ----------- added another pfa test Modified Paths: -------------- trunk/perl-flat/dev-scripts/test.sh trunk/perl-flat/t/03-pregex-pfa.t Added Paths: ----------- trunk/perl-flat/dev-scripts/dfa.gdl trunk/perl-flat/dev-scripts/dfa.png trunk/perl-flat/dev-scripts/mindfa.gdl trunk/perl-flat/dev-scripts/mindfa.png trunk/perl-flat/dev-scripts/nfa.gdl trunk/perl-flat/dev-scripts/nfa.png trunk/perl-flat/dev-scripts/output.png trunk/perl-flat/dev-scripts/pfa.gdl trunk/perl-flat/dev-scripts/pfa.png Added: trunk/perl-flat/dev-scripts/dfa.gdl =================================================================== --- trunk/perl-flat/dev-scripts/dfa.gdl (rev 0) +++ trunk/perl-flat/dev-scripts/dfa.gdl 2007-02-09 17:16:21 UTC (rev 84) @@ -0,0 +1,72 @@ +graph: { +display_edge_labels: yes + +node: { title:"0" shape:circle borderstyle: solid} +node: { title:"1" shape:circle borderstyle: solid} +node: { title:"2" shape:circle borderstyle: solid} +node: { title:"3" shape:circle borderstyle: solid} +node: { title:"4" shape:circle borderstyle: solid} +node: { title:"5" shape:circle borderstyle: solid} +node: { title:"6" shape:circle borderstyle: solid} +node: { title:"7" shape:circle borderstyle: solid} +node: { title:"8" shape:circle borderstyle: solid} +node: { title:"9" shape:circle borderstyle: solid} +node: { title:"10" shape:circle borderstyle: solid} +node: { title:"11" shape:circle borderstyle: solid} +node: { title:"12" shape:circle borderstyle: solid} +node: { title:"13" shape:circle borderstyle: solid} +node: { title:"14" shape:circle borderstyle: solid} +node: { title:"15" shape:circle borderstyle: solid} +node: { title:"16" shape:circle borderstyle: double bordercolor: red} + +edge: { source: "0" target: "1" label: "c" arrowstyle: line } +edge: { source: "0" target: "2" label: "a" arrowstyle: line } +edge: { source: "0" target: "3" label: "b" arrowstyle: line } +edge: { source: "0" target: "4" label: "d" arrowstyle: line } +edge: { source: "1" target: "5" label: "c" arrowstyle: line } +edge: { source: "1" target: "6" label: "a" arrowstyle: line } +edge: { source: "1" target: "7" label: "b" arrowstyle: line } +edge: { source: "1" target: "8" label: "d" arrowstyle: line } +edge: { source: "2" target: "5" label: "a" arrowstyle: line } +edge: { source: "2" target: "6" label: "c" arrowstyle: line } +edge: { source: "2" target: "9" label: "b" arrowstyle: line } +edge: { source: "2" target: "10" label: "d" arrowstyle: line } +edge: { source: "3" target: "5" label: "b" arrowstyle: line } +edge: { source: "3" target: "7" label: "c" arrowstyle: line } +edge: { source: "3" target: "9" label: "a" arrowstyle: line } +edge: { source: "3" target: "11" label: "d" arrowstyle: line } +edge: { source: "4" target: "5" label: "d" arrowstyle: line } +edge: { source: "4" target: "8" label: "c" arrowstyle: line } +edge: { source: "4" target: "10" label: "a" arrowstyle: line } +edge: { source: "4" target: "11" label: "b" arrowstyle: line } +edge: { source: "5" target: "5" label: "a,b,c,d" arrowstyle: line } +edge: { source: "6" target: "5" label: "a,c" arrowstyle: line } +edge: { source: "6" target: "12" label: "b" arrowstyle: line } +edge: { source: "6" target: "13" label: "d" arrowstyle: line } +edge: { source: "7" target: "5" label: "b,c" arrowstyle: line } +edge: { source: "7" target: "12" label: "a" arrowstyle: line } +edge: { source: "7" target: "14" label: "d" arrowstyle: line } +edge: { source: "8" target: "5" label: "c,d" arrowstyle: line } +edge: { source: "8" target: "13" label: "a" arrowstyle: line } +edge: { source: "8" target: "14" label: "b" arrowstyle: line } +edge: { source: "9" target: "5" label: "a,b" arrowstyle: line } +edge: { source: "9" target: "12" label: "c" arrowstyle: line } +edge: { source: "9" target: "15" label: "d" arrowstyle: line } +edge: { source: "10" target: "5" label: "a,d" arrowstyle: line } +edge: { source: "10" target: "13" label: "c" arrowstyle: line } +edge: { source: "10" target: "15" label: "b" arrowstyle: line } +edge: { source: "11" target: "5" label: "b,d" arrowstyle: line } +edge: { source: "11" target: "14" label: "c" arrowstyle: line } +edge: { source: "11" target: "15" label: "a" arrowstyle: line } +edge: { source: "12" target: "5" label: "a,b,c" arrowstyle: line } +edge: { source: "12" target: "16" label: "d" arrowstyle: line } +edge: { source: "13" target: "5" label: "a,c,d" arrowstyle: line } +edge: { source: "13" target: "16" label: "b" arrowstyle: line } +edge: { source: "14" target: "5" label: "b,c,d" arrowstyle: line } +edge: { source: "14" target: "16" label: "a" arrowstyle: line } +edge: { source: "15" target: "5" label: "a,b,d" arrowstyle: line } +edge: { source: "15" target: "16" label: "c" arrowstyle: line } +edge: { source: "16" target: "5" label: "a,b,c,d" arrowstyle: line } +} + + Added: trunk/perl-flat/dev-scripts/dfa.png =================================================================== (Binary files differ) Property changes on: trunk/perl-flat/dev-scripts/dfa.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/perl-flat/dev-scripts/mindfa.gdl =================================================================== --- trunk/perl-flat/dev-scripts/mindfa.gdl (rev 0) +++ trunk/perl-flat/dev-scripts/mindfa.gdl 2007-02-09 17:16:21 UTC (rev 84) @@ -0,0 +1,55 @@ +graph: { +display_edge_labels: yes + +node: { title:"0" shape:circle borderstyle: solid} +node: { title:"1" shape:circle borderstyle: solid} +node: { title:"2" shape:circle borderstyle: solid} +node: { title:"3" shape:circle borderstyle: solid} +node: { title:"4" shape:circle borderstyle: solid} +node: { title:"5" shape:circle borderstyle: solid} +node: { title:"6" shape:circle borderstyle: solid} +node: { title:"7" shape:circle borderstyle: solid} +node: { title:"8" shape:circle borderstyle: solid} +node: { title:"9" shape:circle borderstyle: solid} +node: { title:"10" shape:circle borderstyle: solid} +node: { title:"11" shape:circle borderstyle: solid} +node: { title:"12" shape:circle borderstyle: solid} +node: { title:"13" shape:circle borderstyle: solid} +node: { title:"14" shape:circle borderstyle: solid} +node: { title:"15" shape:circle borderstyle: double bordercolor: red} + +edge: { source: "0" target: "1" label: "c" arrowstyle: line } +edge: { source: "0" target: "2" label: "a" arrowstyle: line } +edge: { source: "0" target: "3" label: "b" arrowstyle: line } +edge: { source: "0" target: "4" label: "d" arrowstyle: line } +edge: { source: "1" target: "5" label: "a" arrowstyle: line } +edge: { source: "1" target: "6" label: "b" arrowstyle: line } +edge: { source: "1" target: "7" label: "d" arrowstyle: line } +edge: { source: "2" target: "5" label: "c" arrowstyle: line } +edge: { source: "2" target: "8" label: "b" arrowstyle: line } +edge: { source: "2" target: "9" label: "d" arrowstyle: line } +edge: { source: "3" target: "6" label: "c" arrowstyle: line } +edge: { source: "3" target: "8" label: "a" arrowstyle: line } +edge: { source: "3" target: "10" label: "d" arrowstyle: line } +edge: { source: "4" target: "7" label: "c" arrowstyle: line } +edge: { source: "4" target: "9" label: "a" arrowstyle: line } +edge: { source: "4" target: "10" label: "b" arrowstyle: line } +edge: { source: "5" target: "11" label: "b" arrowstyle: line } +edge: { source: "5" target: "12" label: "d" arrowstyle: line } +edge: { source: "6" target: "11" label: "a" arrowstyle: line } +edge: { source: "6" target: "13" label: "d" arrowstyle: line } +edge: { source: "7" target: "12" label: "a" arrowstyle: line } +edge: { source: "7" target: "13" label: "b" arrowstyle: line } +edge: { source: "8" target: "11" label: "c" arrowstyle: line } +edge: { source: "8" target: "14" label: "d" arrowstyle: line } +edge: { source: "9" target: "12" label: "c" arrowstyle: line } +edge: { source: "9" target: "14" label: "b" arrowstyle: line } +edge: { source: "10" target: "13" label: "c" arrowstyle: line } +edge: { source: "10" target: "14" label: "a" arrowstyle: line } +edge: { source: "11" target: "15" label: "d" arrowstyle: line } +edge: { source: "12" target: "15" label: "b" arrowstyle: line } +edge: { source: "13" target: "15" label: "a" arrowstyle: line } +edge: { source: "14" target: "15" label: "c" arrowstyle: line } +} + + Added: trunk/perl-flat/dev-scripts/mindfa.png =================================================================== (Binary files differ) Property changes on: trunk/perl-flat/dev-scripts/mindfa.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/perl-flat/dev-scripts/nfa.gdl =================================================================== --- trunk/perl-flat/dev-scripts/nfa.gdl (rev 0) +++ trunk/perl-flat/dev-scripts/nfa.gdl 2007-02-09 17:16:21 UTC (rev 84) @@ -0,0 +1,59 @@ +graph: { +display_edge_labels: yes + +node: { title:"0" shape:circle borderstyle: solid} +node: { title:"1" shape:circle borderstyle: solid} +node: { title:"2" shape:circle borderstyle: solid} +node: { title:"3" shape:circle borderstyle: solid} +node: { title:"4" shape:circle borderstyle: solid} +node: { title:"5" shape:circle borderstyle: solid} +node: { title:"6" shape:circle borderstyle: solid} +node: { title:"7" shape:circle borderstyle: solid} +node: { title:"8" shape:circle borderstyle: solid} +node: { title:"9" shape:circle borderstyle: solid} +node: { title:"10" shape:circle borderstyle: solid} +node: { title:"11" shape:circle borderstyle: solid} +node: { title:"12" shape:circle borderstyle: double bordercolor: red} +node: { title:"13" shape:circle borderstyle: solid} +node: { title:"14" shape:circle borderstyle: solid} +node: { title:"15" shape:circle borderstyle: solid} +node: { title:"16" shape:circle borderstyle: solid} +node: { title:"17" shape:circle borderstyle: solid} + +edge: { source: "0" target: "1" label: "epsilon" arrowstyle: line } +edge: { source: "1" target: "2" label: "c" arrowstyle: line } +edge: { source: "1" target: "3" label: "a" arrowstyle: line } +edge: { source: "1" target: "4" label: "b" arrowstyle: line } +edge: { source: "1" target: "5" label: "d" arrowstyle: line } +edge: { source: "2" target: "6" label: "d" arrowstyle: line } +edge: { source: "2" target: "14" label: "b" arrowstyle: line } +edge: { source: "2" target: "17" label: "a" arrowstyle: line } +edge: { source: "3" target: "7" label: "d" arrowstyle: line } +edge: { source: "3" target: "15" label: "b" arrowstyle: line } +edge: { source: "3" target: "17" label: "c" arrowstyle: line } +edge: { source: "4" target: "8" label: "d" arrowstyle: line } +edge: { source: "4" target: "14" label: "c" arrowstyle: line } +edge: { source: "4" target: "15" label: "a" arrowstyle: line } +edge: { source: "5" target: "6" label: "c" arrowstyle: line } +edge: { source: "5" target: "7" label: "a" arrowstyle: line } +edge: { source: "5" target: "8" label: "b" arrowstyle: line } +edge: { source: "6" target: "9" label: "b" arrowstyle: line } +edge: { source: "6" target: "13" label: "a" arrowstyle: line } +edge: { source: "7" target: "10" label: "b" arrowstyle: line } +edge: { source: "7" target: "13" label: "c" arrowstyle: line } +edge: { source: "8" target: "9" label: "c" arrowstyle: line } +edge: { source: "8" target: "10" label: "a" arrowstyle: line } +edge: { source: "9" target: "11" label: "a" arrowstyle: line } +edge: { source: "10" target: "11" label: "c" arrowstyle: line } +edge: { source: "11" target: "12" label: "epsilon" arrowstyle: line } +edge: { source: "13" target: "11" label: "b" arrowstyle: line } +edge: { source: "14" target: "9" label: "d" arrowstyle: line } +edge: { source: "14" target: "16" label: "a" arrowstyle: line } +edge: { source: "15" target: "10" label: "d" arrowstyle: line } +edge: { source: "15" target: "16" label: "c" arrowstyle: line } +edge: { source: "16" target: "11" label: "d" arrowstyle: line } +edge: { source: "17" target: "13" label: "d" arrowstyle: line } +edge: { source: "17" target: "16" label: "b" arrowstyle: line } +} + + Added: trunk/perl-flat/dev-scripts/nfa.png =================================================================== (Binary files differ) Property changes on: trunk/perl-flat/dev-scripts/nfa.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/perl-flat/dev-scripts/output.png =================================================================== (Binary files differ) Property changes on: trunk/perl-flat/dev-scripts/output.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/perl-flat/dev-scripts/pfa.gdl =================================================================== --- trunk/perl-flat/dev-scripts/pfa.gdl (rev 0) +++ trunk/perl-flat/dev-scripts/pfa.gdl 2007-02-09 17:16:21 UTC (rev 84) @@ -0,0 +1,29 @@ +graph: { +display_edge_labels: yes + +node: { title:"0" shape:circle borderstyle: solid} +node: { title:"1" shape:circle borderstyle: solid} +node: { title:"2" shape:circle borderstyle: solid} +node: { title:"3" shape:circle borderstyle: solid} +node: { title:"4" shape:circle borderstyle: solid} +node: { title:"5" shape:circle borderstyle: solid} +node: { title:"6" shape:circle borderstyle: solid} +node: { title:"7" shape:circle borderstyle: solid} +node: { title:"8" shape:circle borderstyle: solid} +node: { title:"9" shape:circle borderstyle: double bordercolor: red} + +edge: { source: "0" target: "1" label: "a" arrowstyle: line } +edge: { source: "1" target: "9" label: "#lambda" arrowstyle: line } +edge: { source: "2" target: "3" label: "b" arrowstyle: line } +edge: { source: "3" target: "9" label: "#lambda" arrowstyle: line } +edge: { source: "4" target: "5" label: "c" arrowstyle: line } +edge: { source: "5" target: "9" label: "#lambda" arrowstyle: line } +edge: { source: "6" target: "7" label: "d" arrowstyle: line } +edge: { source: "7" target: "9" label: "#lambda" arrowstyle: line } +edge: { source: "8" target: "0" label: "#lambda" arrowstyle: line } +edge: { source: "8" target: "2" label: "#lambda" arrowstyle: line } +edge: { source: "8" target: "4" label: "#lambda" arrowstyle: line } +edge: { source: "8" target: "6" label: "#lambda" arrowstyle: line } +} + + Added: trunk/perl-flat/dev-scripts/pfa.png =================================================================== (Binary files differ) Property changes on: trunk/perl-flat/dev-scripts/pfa.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/perl-flat/dev-scripts/test.sh =================================================================== --- trunk/perl-flat/dev-scripts/test.sh 2006-12-14 01:54:44 UTC (rev 83) +++ trunk/perl-flat/dev-scripts/test.sh 2007-02-09 17:16:21 UTC (rev 84) @@ -1,5 +1 @@ -perl pregex-to-pfa.pl "${1}" -~/distfiles/aiSee/bin/aisee.bin -pngoutput pfa.png pfa.gdl -~/distfiles/aiSee/bin/aisee.bin -pngoutput nfa.png nfa.gdl -~/distfiles/aiSee/bin/aisee.bin -pngoutput dfa.png dfa.gdl -~/distfiles/aiSee/bin/aisee.bin -pngoutput mindfa.png mindfa.gdl +perl pre_compare.pl 'nop(abc)*hij&qrs(def)*klm' 'n(op(abc)*hij&qrs(def)*klm)+q(rs(def)*klm&nop(abc)*hij)' Modified: trunk/perl-flat/t/03-pregex-pfa.t =================================================================== --- trunk/perl-flat/t/03-pregex-pfa.t 2006-12-14 01:54:44 UTC (rev 83) +++ trunk/perl-flat/t/03-pregex-pfa.t 2007-02-09 17:16:21 UTC (rev 84) @@ -11,29 +11,30 @@ diag("This test will take a while.."); +diag("w&v.."); # w&w my $PFA1 = FLAT::Regex::WithExtraOps->new('abc&def')->as_pfa(); my $PFA2 = FLAT::Regex::WithExtraOps->new('a(b(c&def)+d(ef&bc))+d(ef&abc)')->as_pfa(); - my $DFA1 = $PFA1->as_nfa->as_min_dfa; my $DFA2 = $PFA2->as_nfa->as_min_dfa; is( ($DFA1->equals($DFA2)), 1 ); -# w&w* +diag("w&v*.."); +# w&v* $PFA1 = FLAT::Regex::WithExtraOps->new('abc&(def)*')->as_pfa(); $PFA2 = FLAT::Regex::WithExtraOps->new('(def)*( - a(bc&(def)*)+ - d((efd)*ef&(abc))+ - d((efd)*&(abc))ef - )')->as_pfa(); + a(bc&(def)*)+ + d((efd)*ef&(abc))+ + d((efd)*&(abc))ef + )')->as_pfa(); $DFA1 = $PFA1->as_nfa->as_min_dfa; $DFA2 = $PFA2->as_nfa->as_min_dfa; is( ($DFA1->equals($DFA2)), 1); -# w*&w* +# w*&v* # throws some weird warning from FA.pm when mimimizing, but passes still #$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*&(def)*')->as_pfa(); #$PFA2 = FLAT::Regex::WithExtraOps->new('((abc+def)*( @@ -43,24 +44,28 @@ # d((efd)*&(abc)*)ef # )*)*')->as_pfa(); -#$DFA1 = $PFA1->as_nfa->as_min_dfa; -#$DFA2 = $PFA2->as_nfa->as_min_dfa; -# is( ($DFA1->equals($DFA2)), 1); +$DFA1 = $PFA1->as_nfa->as_min_dfa; +$DFA2 = $PFA2->as_nfa->as_min_dfa; + is( ($DFA1->equals($DFA2)), 1); -# w*x&w*y -$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*dx&(efg)*hy')->as_pfa(); #<--! -$PFA2 = FLAT::Regex::WithExtraOps->new('(abc+efg)*( - dx&(efg)*hy+ - hy&(abc)*dx+ - a(((bca)*bcdx)&((efg)*hy))+ - a(((bca)*)&((efg)*hy))bcdx+ - e(((fge)*fghy)&((abc)*dx))+ - e(((fge)*)&((abc)*dx))fghy - )')->as_pfa(); +diag("w*x&v*y.."); +# w*x&v*y +$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*dx&(efg)*hy')->as_pfa(); +$PFA2 = FLAT::Regex::WithExtraOps->new('(abc+efg)*( dx&(efg)*hy+ + hy&(abc)*dx+ + a(((bca)*bcdx)&((efg)*hy))+ + a(((bca)*)&((efg)*hy))bcdx+ + e(((fge)*fghy)&((abc)*dx))+ + e(((fge)*)&((abc)*dx))fghy + )')->as_pfa(); $DFA1 = $PFA1->as_nfa->as_min_dfa; $DFA2 = $PFA2->as_nfa->as_min_dfa; +is( ($DFA1->equals($DFA2)), 1); +$PFA1 = FLAT::Regex::WithExtraOps->new('nop(abc)*hij&qrs(def)*klm')->as_pfa(); +$PFA2 = FLAT::Regex::WithExtraOps->new('n(op(abc)*hij&qrs(def)*klm)+q(rs(def)*klm&nop(abc)*hij)')->as_pfa(); + +$DFA1 = $PFA1->as_nfa->as_min_dfa; +$DFA2 = $PFA2->as_nfa->as_min_dfa; is( ($DFA1->equals($DFA2)), 1); - -__END__ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |