Have you looked at SuperC for inspiration?

An example:

https://github.com/jeapostrophe/superc/blob/master/tests/superc/math.rkt

/Jens Axel


2017-07-04 22:52 GMT+02:00 spearman <pearman...@gmail.com>:

> I have built up a good toolchain for C programming including static
> analysis and runtime testing tools, but I find the C preprocessor is really
> lacking for metaprogramming facilities.
>
> Here is an implementation of "Lisp" macros for C:
> https://github.com/eudoxia0/cmacro
>
> It doesn't seem to be actively maintained and a bit buggy (weird
> formatting errors), and, well, it's Common Lisp :\
>
> I made a start on converting the above into Racket:
>
> https://github.com/spearman/rcmacro
>
> At this point it is little more than a main module with command-line
> options and stubs for the rest of the implementation.
>
> Two sticking points so far are error handling and finding a replacement
> for the "packrat parser" (esrap) that cmacro relies on, as highlighted
> here: https://github.com/eudoxia0/cmacro/blob/master/src/parser.lisp#L290
>
> If there is something available for Racket along the same lines as esrap,
> which uses TDPL grammar, I may be able to move forward with adapting this
> code, otherwise it might be a lost cause and better off just coming up with
> something from scratch (and I might learn something in the process).
> However it seems like a large task and I would be essentially starting from
> first principles.
>
> Before I make a choice on whether to proceed, I wanted check first if
> there are already any Racket-based (or Scheme-based!) implementations of
> macros for C.
> There is this Racket implementation for C++:
>
> https://github.com/elfprince13/RacketMacros4Cxx
>
> but it requires a custom llvm/clang build, and the "demos" don't look very
> much like what I had in mind.
>
> Mostly what I am looking for is a Scheme-like "macro-by-example" syntax to
> provide some level of syntactic information (and hopefully hygiene) above
> what the C preprocessor gives, but not necessarily full-blown "cooperating"
> (MTWT) Racket macros.
>
> Comments/suggestions are appreciated.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
-- 
Jens Axel Søgaard

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to