Cyprien,
I put the code in my main.scm
(define bla '(some value))
(pp (cer bla))
(pp (typeof bla))
I can compile it, but at run time I got:
File "main.scm", line 28, character 571:
#(pp (cer bla))
# ^
*** ERROR:toplevel-init
Type "epair" expected, "pair" provided -- (some value)
1. %toplevel@myAltisServer, main.scm:5
Could you please help me one more time?
thank in advance
Guilhem
Le 18/07/2014 11:48, Cyprien Nicolas a écrit :
Hello Guilhem,
Il y a environ 33 minutes, [email protected] écrivit :
Hello,
For some reasons, I would like to print the current source file name and the
current line number (aka an assert macro)...
Is there a way to get these information in Bigloo?
You can have this piece of information for any list, either the list
is a scheme expression you access at macro-expansion time, or any list
defined using que quote operator. I guess the information is added by
the read function.
The location is available using the CER primitive (which appears to be
undocumented). The CER value either contains a list of three elements
in the form '(at filename char-position), or #f if no location
information is available.
For instance, within the REPL :
1:=> (define bla '(some value))
bla
1:=> (cer bla)
(at stdin 13)
1:=> (typeof bla)
epair
1:=>
The primitive ERROR/LOCATION and WARNING/LOCATION know how to
translate the character position into line & column numbers.
The CER primitive can only be called on `epair' structures, ortherwise
it will raise a type error.
Regards,