70 lines
1.0 KiB
C
70 lines
1.0 KiB
C
_Ierr (message, a, b, c, d, e)
|
|
char message[];
|
|
{
|
|
extern int cgoof;
|
|
printf("ERROR ");
|
|
printf(message, a, b, c, d, e);
|
|
cputc('\n');
|
|
cexit(cgoof);
|
|
}
|
|
char _Iendm[128] {0};
|
|
_Imtab (formatp)
|
|
char **formatp;
|
|
{
|
|
/* make up special table of string ending characters */
|
|
int i, normal;
|
|
char ch;
|
|
/* normally all characters end string except those listed */
|
|
normal = 1;
|
|
if (**formatp == '^')
|
|
{normal = 0; (*formatp)++;}
|
|
for (i= 0; i < 128; i++)
|
|
_Iendm[i] = normal;
|
|
while ((ch = *((*formatp)++)) != ']')
|
|
_Iendm[ch] = !_Iendm[ch];
|
|
|
|
}
|
|
|
|
_Inxch ()
|
|
/* returns next character which is not _Ispce */
|
|
{
|
|
extern int _Isfil, (*_Igetc)();
|
|
int ch;
|
|
while ((ch = (*_Igetc)(_Isfil)) > 0 && _Ispce(ch));
|
|
if (ch > 0)
|
|
return (ch);
|
|
return (-1);
|
|
}
|
|
|
|
_Ispce (c)
|
|
char c;
|
|
{
|
|
switch (c)
|
|
{
|
|
case ' ':
|
|
case '\n':
|
|
case '\t': return(1);
|
|
}
|
|
return(0);
|
|
}
|
|
|
|
_Ispnd (ch)
|
|
char ch;
|
|
{
|
|
return (_Iendm[ch] > 0);
|
|
}
|
|
|
|
char *_Iinpt;
|
|
int (*_Igetc)(), (*_Iungc)();
|
|
_Igstr ()
|
|
{
|
|
extern char *_Iinpt;
|
|
return (*_Iinpt++);
|
|
}
|
|
|
|
_Iungs(ch)
|
|
{
|
|
extern char *_Iinpt;
|
|
*--_Iinpt = ch;
|
|
}
|