• [^] # Re: super article !

    Posté par (site web personnel) . En réponse au journal [Letlang] Écrire un compilateur en Rust (partie 2). Évalué à 6.

    En fait la continuation va indiquer ce qu'on fait ensuite.

    Donc pour parser la ligne const a := 42;, la fonction qui parse const va retourner la fonction qui parse le reste ou une fonction qui retourne une erreur.

    Et ainsi de suite, on va parser a et retourner la fonction qui parse le reste.

    L'utilisateur va donc pouvoir contrôler quand et à quel rythme l'analyse se déroule. Il peut faire une simple boucle (ou fonction récursive) :

    def get_ast({:ok, ast}), do: {:ok, ast}
    def get_ast({:error, reason}). do: {:error, reason}
    def get_ast({:fun, fun}), do: get_ast(fun.())

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg