Partage
  • Partager sur Facebook
  • Partager sur Twitter

Transformer une chaine d'operation en int : C#

    12 octobre 2019 à 14:38:40

    Bonjour,

    Voila un petit moment que je me suis lancer dans un creation d'un language de programmation. Mais un problème se pose : Si l'utilisateur ecris : "inst maVariableInt int = 4 * 5 + 8" (qui est la commande pour crée une variable. Comment gérer la tranformation du "8 * 5 + 8" en nombre ?

    J'avais ecris toute une fonction d'une centaine de ligne pour faire sa mais ce n'était pas franchlent optimiser. J'ai un peut peur d'avoir perdu du temps... Du coup je me demander si il y avais un moyen plus simple de faire sa que de regarder chaque caractère independament et de faire des actions dessu (ce que je faisait jusqu'a maintenant)

    Voila, merci d'avance ^^

    • Partager sur Facebook
    • Partager sur Twitter
      14 octobre 2019 à 9:46:34

      Faire un interpréteur ou un compilateur, c'est pas le genre de truc qu'on conçoit sur un coin de table.

      On n'a pas de vu d'ensemble de votre architecture.

      Mais il y a un "truc" que bien des langages appliquent : interdire les chiffres comme premiers caractère d'un nom de variable ou d'un nom de méthode.

      Cela permet d'avoir un analyseur lexical simplifié, qu'une expression régulière aide très fortement.

      -
      Edité par bacelar 25 octobre 2019 à 19:20:12

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        14 octobre 2019 à 19:49:09

        Je ne suis pas sur d'avoir compris ta réponse, mais je ne sais pas vraiment si tu a compris ma question, en gros on pourrait imaginer le programme suivant :

        inst maVariableInt int

        mavariable = 5

        if maVariable == 5 * 7 / 2

            //action

        end

        Sauf que je ne sais pas comment faire pour transformer le "5 * 7 / 2" en "17,5"

        • Partager sur Facebook
        • Partager sur Twitter
          15 octobre 2019 à 11:03:19

          Heu, oui, là, je comprends pas la question.

          Le compilateur fait cette opération automatiquement car il évalue qu'il n'y a que des "constantes".

          Si vous ne voulez pas qu'il le fasse automatiquement, c'est bien plus compliqué.

          -
          Edité par bacelar 15 octobre 2019 à 11:24:04

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            16 octobre 2019 à 15:47:51

            Non mais c'est moi qui le crée le compilateur, comment faire pour qu'il soit capable de transformer cette operation en nombre ?
            • Partager sur Facebook
            • Partager sur Twitter
              16 octobre 2019 à 17:11:36

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                25 octobre 2019 à 18:21:52

                Merci Beaucoup !!

                (ds j'ai mis 3 ans a répondre)

                • Partager sur Facebook
                • Partager sur Twitter

                Transformer une chaine d'operation en int : C#

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown