From 2e6695c1b951d27fa8ca139893474b118d663225 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Fri, 20 May 2005 17:32:35 +0000
Subject: [PATCH] rationalisation + mesure anti-phraseur PHP chatouilleux

---
 inc-compilo-api.php3 | 18 ++++++++++++++----
 inc-compilo.php3     | 10 +++++-----
 inc-html-squel.php3  | 26 +++++++++++++-------------
 3 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/inc-compilo-api.php3 b/inc-compilo-api.php3
index ac1d929fea..6c958acdf3 100644
--- a/inc-compilo-api.php3
+++ b/inc-compilo-api.php3
@@ -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;
diff --git a/inc-compilo.php3 b/inc-compilo.php3
index c464027121..bbbb3e7a09 100644
--- a/inc-compilo.php3
+++ b/inc-compilo.php3
@@ -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;
diff --git a/inc-html-squel.php3 b/inc-html-squel.php3
index 0f29061aa5..f1e01366bb 100644
--- a/inc-html-squel.php3
+++ b/inc-html-squel.php3
@@ -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);
-- 
GitLab