Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

88 lines
1.1 KiB

#include <stdio.h>
char *PgmName=0; int ShowLit=0;
int ShowProd=1; int ShowBNF=0;
int ProdNbr=0; int LParent=1;
int FirstProd=0; int ErrorCnt=0;
int DocStyle=0; int Body=0;
char pc='x';
char cc;
int lp=0;
void
main(argc, argv)
int argc;
char **argv;
{
PgmName = *argv;
--argc, ++argv;
while (argc && ((**argv == '-') || (**argv == '+'))) {
char *cp=&argv[0][1];
while (*cp) {
switch (*cp) {
case 'd':
case 'D':
Body = DocStyle =
(**argv == '-') ? 0 : 1;
break;
default:
fprintf(stderr,
"Usage: %s [(-|+)dplb] [filename]\n",
PgmName);
exit(-1);
}
++cp;
}
--argc, ++argv;
}
if (argc && (freopen(*argv, "r", stdin) == NULL)) {
perror(PgmName);
exit(-1);
}
yylex();
exit(ErrorCnt);
}
%%
^"%%" ECHO; printf("\n"); Body=1;
.|"\n" check(yytext[0]);
%%
int
check(char cc)
{
if (Body)
{
if( pc!='\'' )
{
switch(cc) {
case '{':
lp++;
break;
case '}':
lp--;
break;
default:
if (lp==0) ECHO;
break;
}
}
else { if (lp==0) ECHO; };
pc = cc;
}
else { ECHO; }
}