C'è un modo per ottenere informazioni su numero di riga/traccia in Haskell?Haskell equivalente di C __LINE__
(come quello di C __LINE__
macro o Python di traceback.extract_stack()
)
che sarebbe di uso per me per la scrittura del programma Haskell che genera codice C++, che verrebbe notata con i commenti dire quale linea Haskell è responsabile per i quali C++ linea.
Haskell esempio:
LINE "#include <foo.h>" -- this is line 12
: INDENT "void Foo::bar() {" "}"
[ LINE $ "blah(m_" ++ x ++ ", \"" ++ x ++ "\");"
| x <- ["Potato", "Avocado"]
]
genererà il codice 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: Fantastico! Ora lo sto usando e ho anche modificato lo snippet di codice sopra per riflettere come appare questa soluzione. Sembra buona! – yairchu