|
|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 993 (0x3e1)
Types: TextFile
Notes: UNIX file
Names: »asmlex.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
└─⟦f4b8d8c84⟧ UNIX Filesystem
└─⟦this⟧ »cmd/as/asmlex.c«
#include "asm.h"
getnb()
{
register c;
do {
if ((c = *ip) != 0)
++ip;
} while (c==' ' || c=='\t');
return (c);
}
get()
{
register c;
if ((c = *ip) != 0)
++ip;
return (c);
}
nxtc(c)
{
if (c == *ip) {
++ip;
return (1);
}
return (0);
}
unget(c)
{
if (c != 0)
--ip;
}
getmap(d)
{
register c, n, v;
if ((c = get()) == '\0')
qerr();
if (c == d)
return (-1);
if (c == '\\') {
c = get();
switch (c) {
case 'b':
c = '\b';
break;
case 'f':
c = '\f';
break;
case 'n':
c = '\n';
break;
case 'r':
c = '\r';
break;
case 't':
c = '\t';
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
n = 0;
v = 0;
while (++n<=3 && c>='0' && c<='7') {
v = (v<<3) + c - '0';
c = get();
}
unget(c);
c = v;
break;
}
}
return (c);
}
more()
{
register c;
c = getnb();
unget(c);
if (c == '\0' || c == '/' || c == ';')
return (0);
return (1);
}