<?php
function
start(
$c
, &
$dfa
)
{
if
(
$c
==
'a'
)
$dfa
= 1;
elseif
(
$c
==
'b'
)
$dfa
= 3;
else
$dfa
= -1;
}
function
state1(
$c
, &
$dfa
)
{
if
(
$c
==
'a'
)
$dfa
= 2;
elseif
(
$c
==
'b'
)
$dfa
= 4;
else
$dfa
= -1;
}
function
state2(
$c
, &
$dfa
)
{
if
(
$c
==
'b'
)
$dfa
= 3;
elseif
(
$c
==
'a'
)
$dfa
= 1;
else
$dfa
= -1;
}
function
state3(
$c
, &
$dfa
)
{
if
(
$c
==
'b'
)
$dfa
= 3;
elseif
(
$c
==
'a'
)
$dfa
= 4;
else
$dfa
= -1;
}
function
state4(
$c
, &
$dfa
)
{
$dfa
= -1;
}
function
isAccepted(
$str
,&
$dfa
)
{
$i
= 0;
$len
= sizeof(
$str
);
for
(
$i
= 0;
$i
<
$len
;
$i
++)
{
if
(
$dfa
== 0)
start(
$str
[
$i
],
$dfa
);
elseif
(
$dfa
== 1)
state1(
$str
[
$i
],
$dfa
);
elseif
(
$dfa
== 2)
state2(
$str
[
$i
],
$dfa
);
elseif
(
$dfa
== 3)
state3(
$str
[
$i
],
$dfa
);
elseif
(
$dfa
== 4)
state4(
$str
[
$i
],
$dfa
);
else
return
0;
}
if
(
$dfa
== 3)
return
1;
else
return
0;
}
$dfa
= 0;
$str
=
array
(
"a"
,
"a"
,
"a"
,
"a"
,
"a"
,
"a"
,
"b"
,
"b"
,
"b"
,
"b"
);
if
(isAccepted(
$str
,
$dfa
) != 0)
echo
"ACCEPTED"
;
else
echo
"NOT ACCEPTED"
;
?>