rendered paste body#define EDJE_START() BEGIN(SC_EDJE);#define EDJE_OBRACE() \ if (edje >= 1) \ { \ ++edje; \ EDJE_CODE(); \ } else { \ ++edje; \ } \ printf("open: %d\n", edje);#define EDJE_CBRACE() \ if (edje >= 1) \ { \ --edje; \ EDJE_CODE(); \ } else { \ --edje; \ } \ if (edje < 0) \ { edje = 0; \ BEGIN(INITIAL); \ } \ printf("close: %d\n", edje); #define EDJE_NEWLINE() evolve_lnum ++; evolve_col = 0;#define EDJE_CODE() evolve_col += yyleng; return (EDJECODETOK)<SC_EDJE>{ "edje" { EDJE_START(); } "{" { EDJE_OBRACE(); } \n { EDJE_NEWLINE(); } ([^\{\}])+ { yylval=strdup(yytext); EDJE_CODE(); } "}" { EDJE_CBRACE(); }}