-/* cbake.l @BAKE flex @FILE && cc -std=c99 -D_GNU_SOURCE -o @SHORT lex.yy.c @ARGS -lfl @STOP */
+/* cbake.l @BAKE flex @FILE && cc -std=c99 -D_GNU_SOURCE -o @{@SHORT} lex.yy.c @ARGS -lfl @STOP */
%{
#include <ctype.h>
char ** gav;
/* Options */
int gselect = 1;
-/* Line accum */
-int line = 1;
+/* accum */
+int line = 1, expunge_depth = 0;
+
extern void root(char * filename);
extern void args(int n);
@ARGS:{NUM}+ { args(atoi(strrchr(yytext, ':')+1)); }
@ARGS|$\+ { args(-1); }
@STOP { CHAR('\n'); if (gpipe) { fprintf(stderr, "output: "); } if (!gselect) { return 0; } BEGIN INITIAL; }
+ @\{ { ++expunge_depth; }
+ \} {if (!expunge_depth--) { ECHO; } }
{SPACE}+ { CHAR(' '); }
. { ECHO; }
}