/** * Compile un critère non déclaré explicitement * * Compile les critères non déclarés, ainsi que les parties de boucles * avec les critères {0,1} ou {1/2} * * @param string $idb Identifiant de la boucle * @param array $boucles AST du squelette * @param Critere $crit Paramètres du critère dans cette boucle * @return void **/ function calculer_critere_DEFAUT_dist($idb, &$boucles, $crit) { // double cas particulier {0,1} et {1/2} repere a l'analyse lexicale if ($crit->op == "," or $crit->op == '/') { return calculer_critere_parties($idb, $boucles, $crit); } $r = calculer_critere_infixe($idb, $boucles, $crit); if (!$r) { # // on produit une erreur seulement si le critere n'a pas de '?' # if (!$crit->cond) { return array('zbug_critere_inconnu', array('critere' => $crit->op)); # } } else { calculer_critere_DEFAUT_args($idb, $boucles, $crit, $r); } }
function calculer_critere_DEFAUT_dist($idb, &$boucles, $crit) { // double cas particulier {0,1} et {1/2} repere a l'analyse lexicale if (($crit->op == ",") OR ($crit->op == '/')) return calculer_critere_parties($idb, $boucles, $crit); $r = calculer_critere_infixe($idb, $boucles, $crit); if (!$r) { return (array('zbug_critere_inconnu', array('critere' => $crit->op ))); } else calculer_critere_DEFAUT_args($idb, $boucles, $crit, $r); }