Existe-t-il un moyen d'obtenir des informations de numéro de ligne/retraçage dans Haskell?Haskell équivalent de C __LINE__
(comme macro C de __LINE__
ou Python traceback.extract_stack()
)
Ce serait utile pour moi pour écrire le programme Haskell qui génère du code C++, qui serait transcrite avec telling commentaires quelle ligne Haskell est responsable de quelle ligne C++.
exemple Haskell:
LINE "#include <foo.h>" -- this is line 12
: INDENT "void Foo::bar() {" "}"
[ LINE $ "blah(m_" ++ x ++ ", \"" ++ x ++ "\");"
| x <- ["Potato", "Avocado"]
]
va générer ce code C++:
#include <foo.h> // gen.hs:12
void Foo::bar() { // gen.hs:13
blah(m_Potato, "Potato"); // gen.hs:14
blah(m_Avocado, "Avocado"); // gen.hs:14
} // gen.hs:13
@dons: Génial! Je l'utilise maintenant et j'ai également changé l'extrait de code ci-dessus pour refléter l'apparence de cette solution. Ça à l'air bon! – yairchu