diff --git a/shortcodes.rl b/shortcodes.rl new file mode 100644 index 0000000..2c0d2a9 --- /dev/null +++ b/shortcodes.rl @@ -0,0 +1,41 @@ +#include +#include "bstrlib/bstrlib.h" + +%%{ + machine shortcode; + + label = alpha+ > {label_start = p; printf("%s", label_start);} > {printf("=>%s", label_start);}; + + start = '{{' % {printf("start");}; + end = '}}' > {printf("end");}; + + main := (start label? end); + +}%% + +bstring parse(char *_input) { + %%write data; + char *eof, *ts, *te = 0; + int cs, act = 0; + + bstring output = bfromcstr("out"); + + bstring input = bfromcstr(_input); + char *p = input->data; + char *pe = p + blength(input); + + char *label_start = 0; + char *label_end = 0; + + + %% write init; + %% write exec; + + return output; +} + +int main(int argc, char **argv) { + bstring output = parse("{{foo}}"); + printf("\n%s\n", output->data); + return 0; +}