• [^] # Re: Autres grammaires

    Posté par (site web personnel) . En réponse au journal L'expressivité des langages. Évalué à 2.

    Comme je l'ai dit, il n'y a rien de défini. Mais j'imagine par exemple quelque chose du style :
    \define{my_function}{\function{
    \print\getparam{1}{\true}
    }}
    \setspecialchar{startkeyword}@
    @my_function{Hello World}


    On appelle la fonction \define qui va définir un symbole my_function contenant une fonction qui affichera son premier paramètre. Ensuite, on définit que le caractère @ servira a introduire un mot-clef comme le fait actuellement \. On peut donc appeler notre fonction définie avec @my_function.

    Pour déterminer les paramètres d'une fonction cela se fait à la volée. Lorsque une fonction appelle getparam, le moteur du langage va découper le texte qui suit le texte en cours (@my_function), c'est à dire {Hello World}. Il détecte les caractères spéciaux { et } qui permettent de grouper le texte et prend uniquement son contenu. Le contenu trouvé est ensuite évalué récursivement.

    Il serait bien sûr possible d'accéder au prochain caractère de manière brute ou sans évaluer le texte trouvé. Sinon, si dans mon appel à \getparam j'ai mis {\true} c'est pour dire que le paramètre doit être 'mangé' et que le procian texte a évaluer est encore après.

    Voila, j'espère que ce n'est pas trop difficile a suivre