Executer un string ?

cs_bob99 Messages postés 1 Date d'inscription vendredi 2 août 2002 Statut Membre Dernière intervention 2 août 2002 - 2 août 2002 à 18:51
txprog Messages postés 10 Date d'inscription mercredi 31 juillet 2002 Statut Membre Dernière intervention 6 août 2002 - 5 août 2002 à 12:43
Bonjour tous le monde,

je suis entrain de creer une application en opengl et j'ai creer des objet en un fichier.
un objet est du styles (dans le fichier):
{
x - y - 200;
y * 500;
}

d'ou cela donne, par exemple :
obj1 = "x - y - 200"
obj2 = "y * 500"

les vertex son defini par rapport au point precedent ( x et y ici).

je voudrai une fonction ( StrToCmd ici) qui puisse executer ce type code :

glVertex2i(StrToCmd(obj1),StrToCmd(obj2));

est-ce possible ?

1 réponse

txprog Messages postés 10 Date d'inscription mercredi 31 juillet 2002 Statut Membre Dernière intervention 6 août 2002
5 août 2002 à 12:43
salut.
tu crois que ca se fait comme ca ton code ???
il faut découpé ton fichier source, mémoriser les variables, effectuer les opérations....
en gros, c'est un compilateur.
je suis en 3ème année d'info, et j'ai un compilo qui fonctionne. le principe est assez simple :
- 1 : définit ton langage de ton fichier source :
VAR -> [a-z;A-Z][a-z;A-Z;0-9]*
OP -> + | - | / | *
RES -> VAR OP RES | VAR

ca, c'est juste pour une opération, sans les parenthèses et priorité des opérateurs.

- 2 : il faut un scanner : il va découpé ton code source en élément distinc : soit un caractère, un entier, un réel, un token, une chaine...

- 3 : il faut un parser : il va lire ton fichier avec le scanner ci-dessus, en respectant le langage que tu as définit.

- 4 : il faut un interpreter : en gros, il va utiliser le parser pour mémoriser les variables, effectuer les opérations

Avantages : en faisant cela, tu pourras même définir une fonction, et l'utiliser dans ton fichier pour les coordonnées (ex : x - sin(a) + 3)...

Inconvenient : c'est peut-être dur de comprendre la 1ère fois. Tu peux faire quelque chose de spécifique pour ton code, mais en faisant un mini-compilo, tu pourra le réutiliser dans tes programmes sans problèmes.

contact-moi pour plus de précision, voir même des sources.

@+
[TiTo];-P
0
Rejoignez-nous