home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
minnie.tuhs.org
/
unixen.tar
/
unixen
/
PDP-11
/
Distributions
/
ucb
/
spencer_2bsd.tar.gz
/
2bsd.tar
/
src
/
pi0
/
yyoptions.c
< prev
next >
Wrap
C/C++ Source or Header
|
1980-02-17
|
1KB
|
66 lines
/* Copyright (c) 1979 Regents of the University of California */
#
/*
* pi - Pascal interpreter code translator
*
* Charles Haley, Bill Joy UCB
* Version 1.2 January 1979
*/
#include "0.h"
#include "yy.h"
/*
* Options processes the option
* strings which can appear in
* comments and returns the next character.
*/
options()
{
register c, ch;
register char *optp;
int ok;
c = getchar();
if (c != '$')
return (c);
do {
ch = c = getchar();
switch (c) {
case 'b':
optp = &opts['b'-'a'];
goto optdig;
case 'x':
optp = &opts['x'-'a'];
goto optdig;
optdig:
c = getchar();
if (!digit(c))
return (c);
*optp = c - '0';
c = getchar();
break;
default:
if (c < 'a' || c > 'z')
return (c);
optp = &opts[c-'a'];
c = getchar();
if (c == '+') {
*optp = 1;
c = getchar();
} else if (c == '-') {
*optp = 0;
c = getchar();
} else
return (c);
break;
}
#ifdef PI0
send(ROSET, ch, *optp);
#endif
} while (c == ',');
if (opts['u'-'a'])
setuflg();
return (c);
}