How about (eval '(lambda () expr))  -- if an error happens, it can only be
compile-time.



On Thu, Oct 24, 2013 at 8:48 PM, Alex Shinn <[email protected]> wrote:

> On Fri, Oct 25, 2013 at 12:53 AM, Michael Montague <[email protected]>wrote:
>
>> My reader includes location information when it reads identifiers and
>> quote strips all that out. I want that to be part of the tests and I
>> want to be able to test for specific errors. I will put more thought
>> into it and figure out a way to make my tests work in (chibi test).
>>
>
> It's not really possible without implementation-specific
> extensions, because the error is happening at compile
> time, and there's no standard way to catch compile-time
> errors.
>
> You could write a low-level macro that evaluates it's body:
>
> (define-syntax test-syntax
>   (er-macro-transformer
>     (lambda (expr rename compare)
>       (guard (else (exn '(test-assert "syntax bad" #f)))
>         (eval expr)
>         '(test-assert "syntax ok" #t)))))
>
> and maybe preserve the source info there, but it's still
> just falling back on eval.
>
> As an implementation-specific extension you could provide
> a syntax-guard form which can catch macro errors, which
> would be a cleaner solution.
>
> --
> Alex
>
>
> _______________________________________________
> Scheme-reports mailing list
> [email protected]
> http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
>
>
_______________________________________________
Scheme-reports mailing list
[email protected]
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to