1
0
mirror of https://github.com/PDP-10/its.git synced 2026-04-07 06:16:30 +00:00
Files
PDP-10.its/c20/lex/word.oc
2018-05-15 07:06:17 +02:00

165 lines
3.6 KiB
Plaintext

#
#include <stdio.h>
#include <lex.h>
extern int _lmovb();
#line 8 "WORD.LXI"
char line[133];
char *linep = &line;
int is_eof = 0;
int wordct = 0;
#define T_EOL 1
main()
{
register int i;
while ((i = yylex()) != 0) {
/*
* If the "end-of-line" token is returned
* AND we're really at the end of a line,
* read the next line. Note that T_EOL is
* returned twice when the program starts
* because of the nature of the look-ahead
* algorithms.
*/
if (i == T_EOL && !is_eof && *linep == 0) {
printf("* ");
fflush(stdout);
getline();
}
}
printf("%d words\n", wordct);
}
_Alextab(__na__) {
switch (__na__) {
case 0:
#line 37 "WORD.LXI"
/*
* Write each word on a seperate line
*/
lexecho(stdout);
printf("\n");
wordct++;
return(LEXSKIP);
break;
case 1:
#line 46 "WORD.LXI"
return(T_EOL);
break;
case 2:
#line 49 "WORD.LXI"
return(LEXSKIP);
break;
}
return(LEXSKIP);
}
#line 52 "WORD.LXI"
getline()
/*
* Read a line for lexgetc()
*/
{
is_eof = (fgets(line, sizeof line, stdin) == NULL);
linep = &line;
}
lexgetc()
/*
* Homemade lexgetc -- return zero while at the end of an
* input line or EOF at end of file. If more on this line,
* return it.
*/
{
return((is_eof) ? EOF : (*linep == 0) ? 0 : *linep++);
}
int _Flextab[] {
-1, 2, 2, 1, 0, 0, -1,
};
#line 72 "WORD.LXI"
#define LLTYPE1 char
LLTYPE1 _Nlextab[] {
3, 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2,
2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5,
};
LLTYPE1 _Clextab[] {
0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4,
};
LLTYPE1 _Dlextab[] {
6, 6, 1, 6, 6, 4,
};
int _Blextab[] {
0, 118, 0, 0, 118, 0, 0,
};
#define LLILL LLILL
char _Zlextab[] {
0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377, 0377,
};
struct lextab lextab {
6, /* last state */
_Dlextab, /* defaults */
_Nlextab, /* next */
_Clextab, /* check */
_Blextab, /* base */
244, /* last in base */
_lmovb, /* byte-int move routines */
_Flextab, /* final state descriptions */
_Alextab, /* action routine */
NULL, /* look-ahead vector */
0, /* no ignore class */
0, /* no break class */
_Zlextab, /* illegal class */
};