Skip to content
Extraits de code Groupes Projets
Valider 2e6695c1 rédigé par esj's avatar esj
Parcourir les fichiers

rationalisation + mesure anti-phraseur PHP chatouilleux

parent 1281b51c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -27,7 +27,7 @@ class Inclure {
var $type = 'include';
var $texte;
var $args = array(); // valeurs des params
var $cond_avant, $cond_apres; // inutilises mais generiques
var $avant, $apres; // inutilises mais generiques
}
//
......@@ -37,11 +37,12 @@ class Boucle {
var $type = 'boucle';
var $id_boucle;
var $id_parent ='';
var $cond_avant, $milieu, $cond_apres, $cond_altern;
var $avant, $milieu, $apres, $altern;
var $lang_select;
var $type_requete;
var $sql_serveur;
var $param = array();
var $criteres = array();
var $separateur = array();
var $doublons;
var $partie, $total_parties,$mode_partie;
......@@ -69,11 +70,20 @@ class Boucle {
var $numrows = false;
}
// sous-noeud du precedent
class Critere {
var $operateur;
var $arg1;
var $arg2;
var $not;
}
class Champ {
var $type = 'champ';
var $nom_champ;
var $nom_boucle= ''; // seulement si boucle explicite
var $cond_avant, $cond_apres; // tableaux d'objets
var $avant, $apres; // tableaux d'objets
var $etoile;
var $filtres = array(); // filtre explicites
var $fonctions = array(); // source des filtres (compatibilite)
......@@ -98,7 +108,7 @@ class Idiome {
var $module = ""; // son module de definition
var $filtres = array(); // les filtres a appliquer au resultat
var $fonctions = array(); // source des filtres
var $cond_avant, $cond_apres; // inutilises mais faut = ci-dessus
var $avant, $apres; // inutilises mais faut = ci-dessus
// champs pour la production de code, cf ci-dessus
var $id_boucle;
var $boucles;
......
......@@ -423,11 +423,11 @@ function calculer_liste($tableau, $descr, &$boucles, $id_boucle='', $niv=1) {
ereg_replace("-","_", $nom) . $descr['nom'] .
'($Cache, $Pile, $doublons, $Numrows, $SP)';
$commentaire='';
$avant = calculer_liste($p->cond_avant,
$avant = calculer_liste($p->avant,
$newdescr, $boucles, $id_boucle, $niv+2);
$apres = calculer_liste($p->cond_apres,
$apres = calculer_liste($p->apres,
$newdescr, $boucles, $id_boucle, $niv+2);
$altern = calculer_liste($p->cond_altern,
$altern = calculer_liste($p->altern,
$newdescr, $boucles, $id_boucle, $niv+1);
break;
......@@ -454,9 +454,9 @@ function calculer_liste($tableau, $descr, &$boucles, $id_boucle='', $niv=1) {
$code = calculer_champ($p);
$commentaire = '#' . $p->nom_champ . $p->etoile;
$avant = calculer_liste($p->cond_avant,
$avant = calculer_liste($p->avant,
$descr, $boucles, $id_boucle, $niv+1);
$apres = calculer_liste($p->cond_apres,
$apres = calculer_liste($p->apres,
$descr, $boucles, $id_boucle, $niv+1);
$altern = "''";
break;
......
......@@ -64,8 +64,8 @@ function phraser_inclure($texte, $result) {
$champ->args[$k] = array($m[1]);
}
}
$texte = $champ->cond_apres;
$champ->cond_apres = "";
$texte = $champ->apres;
$champ->apres = "";
$result[] = $champ;
}
return (($texte==="") ? $result : phraser_idiomes($texte, $result));
......@@ -178,7 +178,7 @@ function phraser_args($texte, $fin, $sep, $result, &$pointeur_champ) {
else if ($args[0] == "'")
ereg ("^(')([^']*)(')(.*)$", $args, $regs);
else
ereg("^( *)([^,{}]*(\{[^{}]*\}[^,{}]*)*[^,\}]*)([,}$fin].*)$", $args, $regs);
ereg("^( *)([^,{}]*({[^{}]*\}[^,{}]*)*[^,}]*)([,}$fin].*)$", $args, $regs);
$args = ltrim($regs[count($regs)-1]);
$arg = $regs[2];
......@@ -218,7 +218,7 @@ function phraser_args($texte, $fin, $sep, $result, &$pointeur_champ) {
$texte = ltrim($args);
}
# virer la parenthese fermante ou le chevron fermant
$pointeur_champ->cond_apres = substr($texte,1);
$pointeur_champ->apres = substr($texte,1);
return $result;
}
......@@ -241,10 +241,10 @@ function phraser_champs_interieurs($texte, $sep, $result) {
$champ->nom_boucle = $regs[3];
$champ->nom_champ = $regs[4];
$champ->etoile = $regs[5];
// phraser_args indiquera ou commence cond_apres
// phraser_args indiquera ou commence apres
$result = phraser_args($regs[6], ")", $sep, $result, $champ);
$champ->cond_avant = phraser_champs_exterieurs($regs[1],$sep,$result);
$champ->cond_apres = phraser_champs_exterieurs($champ->cond_apres,$sep,$result);
$champ->avant = phraser_champs_exterieurs($regs[1],$sep,$result);
$champ->apres = phraser_champs_exterieurs($champ->apres,$sep,$result);
$p = strpos($texte, $regs[0]);
......@@ -366,7 +366,7 @@ function phraser($texte, $id_parent, &$boucles, $nom) {
$s = "<B$id_boucle>";
$p = strpos($debut, $s);
if ($p !== false) {
$result->cond_avant = substr($debut, $p + strlen($s));
$result->avant = substr($debut, $p + strlen($s));
$debut = substr($debut, 0, $p);
}
$milieu = substr($milieu, strlen($match[0]));
......@@ -395,7 +395,7 @@ function phraser($texte, $id_parent, &$boucles, $nom) {
$s = "</B$id_boucle>";
$p = strpos($texte, $s);
if ($p !== false) {
$result->cond_fin = substr($texte, 0, $p);
$result->apres = substr($texte, 0, $p);
$texte = substr($texte, $p + strlen($s));
}
......@@ -405,13 +405,13 @@ function phraser($texte, $id_parent, &$boucles, $nom) {
$s = "<//B$id_boucle>";
$p = strpos($texte, $s);
if ($p !== false) {
$result->cond_altern = substr($texte, 0, $p);
$result->altern = substr($texte, 0, $p);
$texte = substr($texte, $p + strlen($s));
}
$result->cond_avant = phraser($result->cond_avant, $id_parent,$boucles, $nom);
$result->cond_apres = phraser($result->cond_fin, $id_parent,$boucles, $nom);
$result->cond_altern = phraser($result->cond_altern,$id_parent,$boucles, $nom);
$result->avant = phraser($result->avant, $id_parent,$boucles, $nom);
$result->apres = phraser($result->apres, $id_parent,$boucles, $nom);
$result->altern = phraser($result->altern,$id_parent,$boucles, $nom);
$result->milieu = phraser($milieu, $id_boucle,$boucles, $nom);
$all_res = phraser_champs_etendus($debut, $all_res);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter