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

📄 r2.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic char sccsid[] = "@(#)r2.c	1.2 (Berkeley) 8/11/83";#endif#include "r.h"extern int hollerith;char	outbuf[80];int	outp	= 0;int	cont	= 0;int	contchar	= '&';char	comment[320];int	comptr	= 0;int	indent	= 0;outdon() {	outbuf[outp] = '\0';	if (outp > 0)		fprintf(outfil, "%s\n", outbuf);	outp = cont = 0;}putcom(s) char *s; {	if (printcom) {		ptc('c');		outtab();		pts(s);		outdon();	}}outcode(xp) char *xp; {	register c, c1, j;	char *q, *p;	p = (char *) xp;	/* shut lint up */	if (cont == 0 && comptr > 0)	/* flush comment if not on continuation */		flushcom();	while( (c = *p++) ){		c1 = *p;		if (type[c] == LET || type[c] == DIG) {			pts(p-1);			break;		}		switch(c){		case '"': case '\'':			j = 0;			for (q=p; *q; q++) {				if (*q == '\\')					q++;				j++;			}			if (outp+j+2 > 71)				contcard();			if (hollerith) {				outnum(--j);				ptc('h');			} else				ptc(c);			while (*p != c) {				if (*p == '\\')					p++;				ptc(*p++);			}			if (!hollerith)				ptc(c);			p++;			break;		case '$': case '\\':			if (strlen(p-1)+outp > 71)				contcard();			if (c1 == '"' || c1 == '\'') {				ptc(c1);				p++;			} else				for (p--; *p; p++)					ptc(*p);			break;		case '%':			outp = 0;			while (*p)				ptc(*p++);			break;		case '>':			if( c1=='=' ){				pts(".ge."); p++;			} else				pts(".gt.");			break;		case '<':			if( c1=='=' ){				pts(".le."); p++;			} else if( c1=='>' ){				pts(".ne."); p++;			} else				pts(".lt.");			break;		case '=':			if( c1=='=' ){				pts(".eq."); p++;			} else				ptc('=');			break;		case '!': case '^':			if( c1=='=' ){				pts(".ne."); p++;			} else				pts(".not.");			break;		case '&':			if( c1=='&' )				p++;			pts(".and.");			break;		case '|':			if( c1=='|' )				p++;			pts(".or.");			break;		case '\t':			outtab();			break;		case '\n':			ptc(' ');			break;		default:			ptc(c);			break;		}	}}ptc(c) char c; {	if( outp > 71 )		contcard();	outbuf[outp++] = c;}pts(s) char *s; {	if (strlen(s)+outp > 71)		contcard();	while(*s)		ptc(*s++);}contcard(){	int n;	outbuf[outp] = '\0';	fprintf(outfil, "%s\n", outbuf);	n = 6;	if (printcom) {		n += INDENT * indent + 1;		if (n > 35) n = 35;	}	for( outp=0; outp<n; outbuf[outp++] = ' ' );	outbuf[contfld-1] = contchar;	cont++;	if (cont > 19)		error("more than 19 continuation cards");}outtab(){	int n;	n = 6;	if (printcom) {		n += INDENT * indent;		if (n > 35) n = 35;	}	while (outp < n)		ptc(' ');}outnum(n) int n; {	int a;	if( a = n/10 )		outnum(a);	ptc(n%10 + '0');}outcont(n) int n; {	transfer = 0;	if (n == 0 && outp == 0)		return;	if( n > 0 )		outnum(n);	outcode("\tcontinue");	outdon();}outgoto(n) int n; {	if (transfer != 0)		return;	outcode("\tgoto ");	outnum(n);	outdon();}flushcom() {	int i, j;	if (printcom == 0)		comptr = 0;	else if (cont == 0 && comptr > 0) {		for (i=j=0; i < comptr; i++)			if (comment[i] == '\n') {				comment[i] = '\0';				fprintf(outfil, "%s\n", &comment[j]);				j = i + 1;			}		comptr = 0;	}}

⌨️ 快捷键说明

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