CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : J'ai fais un interpréteur pour une sorte de fichier "ini", autres idées de projet dans le genre?

DébutPage précedente
1
Page suivantePage suivante
pierre135b pierre135b
MP
Niveau 10
28 août 2016 à 14:17:23

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

rigolotrop rigolotrop
MP
Niveau 9
28 août 2016 à 19:32:56

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.

pierre135b pierre135b
MP
Niveau 10
31 août 2016 à 16:29:07

ça m'as l'air fort complexe pour pas grand chose au final ^^'
Autres idées?

bobby_35 bobby_35
MP
Niveau 4
31 août 2016 à 17:07:39

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.

pierre135b pierre135b
MP
Niveau 10
04 septembre 2016 à 16:30:06

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)

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment