Re:Show HN: Yupp, yet another C preprocessor
by in4lio on Tuesday September 15, 2015 @06:36PM
(#10223583)
Yes, you are right. Since yupp is a third layer, yupp is able to generate C macros, for example:
($define,,assert_bit_mask( value, mask, op ),,($do ]
bool test = ((( value ) & ( mask )) == ( mask ));
if ( !test ) {
ut_fault( "expected mask to be set", __FILE__, __FUNCTION__, __LINE__ );
op;
}
[ ))
will result in: #define assert_bit_mask( value, mask, op ) do { \
bool test = ((( value ) & ( mask )) == ( mask )); \
if ( !test ) { \
ut_fault( "expected mask to be set", __FILE__, __FUNCTION__, __LINE__ ); \
op; \
} \
} while ( 0 )
but you don't need to think about backslashes)
Re:Show HN: Yupp, yet another C preprocessor
by leni536 on Tuesday September 15, 2015 @04:13PM
(#10222865)
My first thought as well. Why restrict to C? It could be useful for many other languages.
Re:Show HN: Yupp, yet another C preprocessor
by in4lio on Tuesday September 15, 2015 @07:00PM
(#10223665)
Just because C is my primary tool) and I have created yupp, to do things like X Macros simpler.
yupp can even be used with Python, as it allows to make the right indentation, e.g. https://github.com/in4lio/yupp/blob/master/eg/dict.yu-py
Although it gives me an idea, a converter that takes a valid C program (with macros) and replaces the C macros with some other macros (in this case yupp macros) that perform the same task. e.g.,
replacing
#include <stdio.h>
with something like:
($include "stdio.h")