deux simples
essaye avec çà ?
Tu as essayé du coup ?
ouais ça tourne depuis ce matin sans souci
Pas d’effets de bords du coup ??
RAS dans les logs…
Le chauffage fonctionne, les volets aussi, les alertes/messages sont envoyés, la présence est OK…
Reste çà alors : testExpr("round(#mois#*(-1.15*#mois#+15)+5)");
wow
Je deviens fou ou bien ?
expr: round(#mois#*(-1.15*#mois#+15)+5)
Dans le setTags elle n’est pas éxécuté dans le round() de la class car elle remplit ce test:
if ( substr_count($match[2], '(') != substr_count($match[2], ')') ) {
et en effet $match[2] vaut : #mois#*(-1.15*#mois#+15
Il bouffe la dernière parenthèse, du coup on a pas le meme nombre de ( que ) !
serait-ce le preg_match_all("/([a-zA-Z][a-zA-Z_]*?)\((.*?)\)/", $_expression, $matches, PREG_SET_ORDER);
qui déconne ??
suit pas expert en regex, voile le matches :
matches: [
[
« round(12*(-1.1512+15)",
« round »,
"12(-1.15*12+15 »
]
]
Deux choses :
L’option autoquote en config sert à mettre une valeur de retour de tag (#time#, #smois# etc) ou de commande entre double quote SI il y a un espace dedans. çà doit pas servir souvent …
Rien à voir mais:
En 4.0 stock et sur ma 4.1 trafiquée:
variable('rhasspyWakeWord') -> nok
variable("rhasspyWakeWord") - ok
variable(rhasspyWakeWord) - ok
bizarre non ??
Ton option, c’est pour avoir ceci tag("lavaleurdemontag")
?
Moi, je mets des simples quotes à l’extérieur du tag pour qu’il fasse les calculs lorsque le nombre est sous la forme scientifique
Ah 2 AND et 2 OR qui trainaient
Normalement ils fonctionnent en php et ils sont dans la liste des operateurs de symfony:
Symfony fait quoi avec l’array ? Un replace insensible ?
Une idée du coup pour ce regex ? Tu a testé avec autre chose. C l’imbrication de parenthèses qu’il aime pas on dirait ? Le core le gère après mais si des le début le regex enlève une des parenthèses ça fait foirer le truc. Le round(x(y)) n’est même pas évalué.
avec çà j’ai bien les parenthese mais pas le round
(\([^()]*+(?:(?R)[^()]*)*+\))
preg_match_all("/([a-zA-Z][a-zA-Z_]*?)(\((?:[()]|[^()]|(?1))*\))/", $_expression, $matches, PREG_SET_ORDER);
round(#mois#(-1.15#mois#+15)+5) → 19 !!!
Question suivante, en faisant çà on casse quoi
EDIT: çà, KO strlen(‹ to,to ›)