... rephrasealgorithme d'analyse multi-niveaux
Je voudrais savoir comment mieux analyser les fonctions/conditionals. donc si vous avez quelque chose comme: [if {a} is {12 or 34}][if {b} not {55}] show +c+ [/if][/if]
qui est un conditionnel à l'intérieur d'un conditionnel. On dirait que je ne peux pas le faire avec regex seulement.
pour l'instant question originale
J'ai un moyen assez simple d'analyse syntaxique quelques commandes par actionscript.
J'utilise regexp pour trouver des balises, des commandes et des opérandes en utilisant ...
+key_word+ // any text surrounded by +
[ifempty +val_1+]+val_2+[/ifempty] //simple conditional
[ifisnot={`true,yes`} +ShowTitle+]+val_3+[/ifisnot] // conditional with operands
mon algorithme actuel correspond à la balise d'ouverture [**]
avec la première balise de fermeture [/**]
même si elle ne correspond pas. Ce qui signifie que je ne pouvais pas faire quelque chose comme [ifempty +val_2+][ifnotempty +val_2]+val_3+[/ifnotempty]+val_4+[/ifempty]
- en mettant essentiellement un conditionnel à l'intérieur d'un autre.
J'utilise un moyen en ligne de l'analyse syntaxique qui divise la chaîne en un tableau de chaînes en fonction de cette expression rationnelle \[[^\/](?:[^\]])*\](?:[^\]])*\[\/(?:[^\]])*\]
peut-on proposer un algorithme plus robuste avec une convention d'analyse plus robuste/standard? surtout pour as3.