%{ #include int verbose = 0; char *progName = NULL; char **currArg = NULL; int currArgNum = 0; %} %% ^"-h" | ^"-?" | ^"--help" { printf("usage is: %s [--help | -h | -?] ", progName); printf("[--verbose | -v ...]\n"); exit(0); } ^"-v" | ^"--verbose" { verbose++; } .* { printf("unknown option '%s'!\n", yytext); exit(1); } %% int yywrap() { if(--currArgNum <= 0) return 1; yy_scan_string(*(++currArg)); return 0; } int main(int argc, char *argv[]) { progName = *argv; currArg = ++argv; currArgNum = --argc; if(currArgNum > 0) { yy_scan_string(*currArg); yylex(); /* Nur EIN Aufruf fuer alle Parameter */ } printf("Now starting to frobnicate with:\n"); printf("verbose = %d\n", verbose); }