⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mkoldproto.l

📁 一个通讯程序源码
💻 L
字号:
/* CHK=0x5793 */%{char *rev = "1.00";/*+-------------------------------------------------------------------------	mkoldproto.c.{l,c} - make "old" style prototypes from "new" kindcc -Zg source.c | mkproto > lint_args.htakes prototypes of the stylevoid change_report(char *original);and emitsvoid change_report(char *);The UNIX V compiler makes the new kind, accepts the old and new kind,but there are a lot of compilers which don't like the new kind.Warning, this program will make mush out of "old" style prototypesfed to it.--------------------------------------------------------------------------*//*+:EDITS:*//*:09-10-1992-13:59-wht@n4hgf-ECU release 3.20 *//*:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA *//*:11-27-1989-18:31-wht-creation */int verbose = 0;/*+-------------------------------------------------------------------------	change_report(original)--------------------------------------------------------------------------*/voidchange_report(original)char *original;{	fputs("fixing: ",stderr);	while(*original)	{		if((*original >= ' ') && (*original <= '~'))			fputc(*original,stderr);		else			fprintf(stderr,"<%02x>",*original);		original++;	}	fputs("\n",stderr);}	/* end of change_report *//*+-------------------------------------------------------------------------	main(argc,argv,envp)--------------------------------------------------------------------------*/main(argc,argv,envp)int argc;char **argv;char **envp;{register int itmp;register int iargv;int fileiargv = 0;	if(argc > 1)	{		for(iargv = 1; iargv < argc; iargv++)		{			if(argv[iargv][0] == '-')			{				switch(itmp = (argv[iargv][1]))				{					case 'v':						verbose = 1;						break;					default:						break;				}			}			else			{				if(yyin != stdin)				{					fprintf(stderr,"only 1 filename, please\n");					exit(1);				}				if( (yyin = fopen(argv[iargv],"r")) == NULL)				{					perror(argv[iargv]);					exit(1);				}				fileiargv = iargv;			}		}	}	if(verbose && fileiargv)		fprintf(stderr,"%s:\n",argv[fileiargv]);	yylex();	exit(0);}	/* end of main *//* vi: set tabstop=4 shiftwidth=4: */%}W			[ \t]STRING		\"([^"\n]|\\\")*\"OPCHARS		["'+-*/=|!&%^?><:\]]IDENT		[a-zA-Z0-9_]+U			"unsigned"I			"int"L			"long"S			"short"C			"char"R			"register"ST			"static"I8			"INT8"I16			"INT16"I32			"INT32"UN_ST		("union "|"struct "){IDENT}DECLTAB1	({I}|{C}|{S}|{L}|{U}|{R}|{ST}|{I8}|{I16}|{I32}|{UN_ST})[\t]{IDENT}DECLTAB2	({I}|{C}|{S}|{L}|{U}|{R}|{ST}|{I8}|{I16}|{I32}|{UN_ST})[\t ][\t ]+{IDENT}%START	COMMENT PREPROC%%<PREPROC>.*\n							{ECHO;										 BEGIN 0;										}^"#"									{										ECHO;										BEGIN PREPROC;										}<COMMENT>([^*\n]|"*"+[^*/\n])*			ECHO;<COMMENT>([^*\n]|"*"+[^*/\n])*"*"*"*/"	{ECHO;										 BEGIN 0;										}<COMMENT>.|\n							ECHO;"/*"				{						ECHO;						BEGIN COMMENT;					}"extern  "			{						;					}"* "				{						fprintf(yyout,"*");					}{IDENT}","			{					register char *cptr = yytext + yyleng - 1;						if(verbose)							change_report(yytext);						while((*cptr != '\t') && (*cptr != ' ') && (*cptr != '*'))							*cptr-- = 0;						fprintf(yyout,",",yytext);					}{IDENT}")"			{					register char *cptr = yytext + yyleng - 1;						if(verbose)							change_report(yytext);						while((*cptr != '\t') && (*cptr != ' ') && (*cptr != '*'))							*cptr-- = 0;						fprintf(yyout,")",yytext);					}{STRING}			ECHO;"'"."'"				ECHO;.|\n				ECHO;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -