1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
$arbre='((((.......)....';
$foobar = 0;
read($arbre, 0, $foobar );
function read($arbre,$position, &$dejaLu ){
$max_leng = strlen($arbre);
$tampon = '';
$resultat=array();
while( $position < $max_leng ){
$tmp = $arbre[$position];
si $tmp == '(' alors
$resultat[]= read( $arbre, $position+1, $dejaLu ) //passage par référence!
$position = $dejaLu;
si $tmp == ')' alors
//on a fini de lire le fils de droite
$resultat[]=$tampon;
$dejaLu= $position;
retourner $resultat; //c'est la virgule qui sépare les fils?
si $tmp == ',' alors
// on a fini de lire le fils de gauche
$resultat[]=$tampon;
$tampon = '';
sinon
$tampon .= $tmp;
fin
$position++; //pas sur de ça.
}
//normalement on ne passe jamais ici
afficher "erreur ?";
retourner $resultat; |
Partager