Yop
J'ai fais cela en C++, je l'ai baptisé inu, il est fonctionnel et interprete les choses comme cela :
[Block name]
foo = bar ;commentaire
bar = 3.14
val = c
On peut paramétrer l'interpréteur pour accepter des blocks sans nom, ou ajouter des caracteres d'échappement pour faire un block vide (en gros, si mon char d'échappement est \, un block qui porte le nom [\] est égal à un nom de block vide (car [] est une erreur de syntaxe))
donnée sans block = ceci
[block]
donnée avec block = cela
[/]
seconde donnée sans block = ceci
Et l'accès en C++ ressemble à
Inu i;
data d;
float f;
string s;
d = i.map[key("nom de block","clé"); // premiere manière, l'accès simple à la map pour récuperer l'instance de data
f = i.map[key("foo","bar").getData<double>(); // Seconde maniere, quand on connait le type de donnée à récup
s = i.map[key("foo","bar").getDataAsString(); // Troisieme maniere, si on veut juste les données en str
J'ai adoré coder cela, c'était vraiment fun, mais j'aimerais remettre cela. Avez vous des idées, un peu plus compliquées peut être, dans le genre?
Ou alors je peux réécrire cela en entier, mais en essayant de l'optimiser plus et d'ajouter des fonctionnalitées comme par exemple, ajouter des modes de lecture de fichier différentes ou un mode d'écriture ? (Mais cela semble maigre comme fonctionnalitées à ajouter, d'autres idées?)
Merci :3
Une idée qui m'amuse beaucoup dans mes projets c'est de me débarrasser de tout ce qui vient de la librairie standard C++.
Toi, par exemple, tu utilises une map, donc j'imagine que tu utilises le conteneur de la librairie standard std::Map. Créer ta propre classe Map et utilise là.
Tu utilises des std::string? Crée ta propre classe String.
Encore plus poussé, tu utilises les opérateurs new et delete? Crée ton propre allocateur mémoire qui va remplacer new et delete.
ça m'as l'air fort complexe pour pas grand chose au final ^^'
Autres idées?
Un compilateur ?
Tu fais un petit langage, et tu sors du code C++ par exemple.
Ça demande un peu de travail si tu veux faire un truc propre avec une grammaire mais ça peut être fun.
Le 31 août 2016 à 17:07:39 bobby_35 a écrit :
Un compilateur ?
Tu fais un petit langage, et tu sors du code C++ par exemple.
Ça demande un peu de travail si tu veux faire un truc propre avec une grammaire mais ça peut être fun.
Je fais un truc dans cette veine la finalement : un interpréteur pour un language C-like (il possède moins de fonctionnalitées biensur)