mirror of
https://github.com/PDP-10/its.git
synced 2026-03-27 02:24:15 +00:00
540 lines
10 KiB
C
540 lines
10 KiB
C
#include <stdio.h>
|
|
#include <lex.h>
|
|
|
|
extern int _lmovb();
|
|
|
|
#line 4 "CLEX.LXI"
|
|
|
|
extern char *install();
|
|
|
|
#line 11 "CLEX.LXI"
|
|
|
|
main()
|
|
{
|
|
register int i;
|
|
char buffer[80];
|
|
extern char *token();
|
|
|
|
while (i = yylex()) {
|
|
gettoken(buffer, sizeof buffer);
|
|
printf("yylex returns %d, token = \"%s\"\n",
|
|
i, buffer);
|
|
if (i == LEXERR) {
|
|
error("LEXERR -- abort");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
_Alextab(__na__) {
|
|
|
|
#line 30 "CLEX.LXI"
|
|
|
|
register int c;
|
|
switch (__na__) {
|
|
case 0:
|
|
|
|
#line 33 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 1:
|
|
|
|
#line 34 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 2:
|
|
|
|
#line 35 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 3:
|
|
|
|
#line 36 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 4:
|
|
|
|
#line 37 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 5:
|
|
|
|
#line 38 "CLEX.LXI"
|
|
return(-1);
|
|
break;
|
|
case 6:
|
|
|
|
#line 39 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 7:
|
|
|
|
#line 40 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 8:
|
|
|
|
#line 41 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 9:
|
|
|
|
#line 42 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 10:
|
|
|
|
#line 43 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 11:
|
|
|
|
#line 44 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 12:
|
|
|
|
#line 45 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 13:
|
|
|
|
#line 46 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 14:
|
|
|
|
#line 47 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 15:
|
|
|
|
#line 48 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 16:
|
|
|
|
#line 49 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 17:
|
|
|
|
#line 50 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 18:
|
|
|
|
#line 51 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 19:
|
|
|
|
#line 52 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 20:
|
|
|
|
#line 53 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 21:
|
|
|
|
#line 54 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 22:
|
|
|
|
#line 55 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 23:
|
|
|
|
#line 56 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 24:
|
|
|
|
#line 57 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 25:
|
|
|
|
#line 58 "CLEX.LXI"
|
|
|
|
lexval = install();
|
|
return(6);
|
|
|
|
break;
|
|
case 26:
|
|
|
|
#line 62 "CLEX.LXI"
|
|
|
|
lexval = install();
|
|
return(7);
|
|
|
|
break;
|
|
case 27:
|
|
|
|
#line 66 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 28:
|
|
|
|
#line 67 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 29:
|
|
|
|
#line 68 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 30:
|
|
|
|
#line 69 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 31:
|
|
|
|
#line 70 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 32:
|
|
|
|
#line 71 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 33:
|
|
|
|
#line 72 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 34:
|
|
|
|
#line 73 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 35:
|
|
|
|
#line 74 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 36:
|
|
|
|
#line 75 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 37:
|
|
|
|
#line 76 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 38:
|
|
|
|
#line 77 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 39:
|
|
|
|
#line 78 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 40:
|
|
|
|
#line 79 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 41:
|
|
|
|
#line 80 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 42:
|
|
|
|
#line 81 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 43:
|
|
|
|
#line 82 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 44:
|
|
|
|
#line 83 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 45:
|
|
|
|
#line 84 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 46:
|
|
|
|
#line 85 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 47:
|
|
|
|
#line 86 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 48:
|
|
|
|
#line 87 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 49:
|
|
|
|
#line 88 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 50:
|
|
|
|
#line 89 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 51:
|
|
|
|
#line 90 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 52:
|
|
|
|
#line 91 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 53:
|
|
|
|
#line 92 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 54:
|
|
|
|
#line 93 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 55:
|
|
|
|
#line 94 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 56:
|
|
|
|
#line 95 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 57:
|
|
|
|
#line 96 "CLEX.LXI"
|
|
|
|
comment("*/");
|
|
return(LEXSKIP);
|
|
|
|
break;
|
|
case 58:
|
|
|
|
#line 100 "CLEX.LXI"
|
|
|
|
if ((c = mapch('\'', '\\')) != -1)
|
|
while (mapch('\'', '\\') != -1)
|
|
lexerror("Long character constant");
|
|
printf("%c", c);
|
|
return(__na__);
|
|
|
|
break;
|
|
case 59:
|
|
|
|
#line 107 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 60:
|
|
|
|
#line 108 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 61:
|
|
|
|
#line 109 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 62:
|
|
|
|
#line 110 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 63:
|
|
|
|
#line 111 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 64:
|
|
|
|
#line 112 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 65:
|
|
|
|
#line 113 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 66:
|
|
|
|
#line 114 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 67:
|
|
|
|
#line 115 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 68:
|
|
|
|
#line 116 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 69:
|
|
|
|
#line 117 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
case 70:
|
|
|
|
#line 118 "CLEX.LXI"
|
|
return(__na__);
|
|
break;
|
|
}
|
|
return(LEXSKIP);
|
|
}
|
|
|
|
#line 119 "CLEX.LXI"
|
|
|
|
char *
|
|
install()
|
|
/*
|
|
* Install the current token in the symbol table
|
|
*/
|
|
{
|
|
register char *buffer; /* Where to put the character */
|
|
register char *first; /* -> first byte of the token */
|
|
char *last; /* Can't be in a register */
|
|
extern char *token();
|
|
|
|
first = token(&last); /* Find first/last of token */
|
|
if ((buffer = alloc((last - first) + 1)) == NULL) {
|
|
error("Out of space in install");
|
|
exit(1);
|
|
}
|
|
first = copy(buffer, first, (last - first));
|
|
*first = '\0';
|
|
return(buffer);
|
|
}
|
|
|
|
int _Flextab[] {
|
|
-1, 70, 69, 68, 67, 66, 65, 62, 61, 60, 59, 58, 56, 55, 54, 53,
|
|
50, 52, 49, 51, 46, 63, 45, 64, 41, 40, 57, 39, 32, 34, 31, -1,
|
|
30, 29, 48, 47, -1, 44, -1, 43, 42, 38, 37, 36, 35, 27, 33, 28,
|
|
26, 26, 25, 25, 25, 25, 25, 25, 25, 24, 25, 25, 25, 25, 25, 25,
|
|
23, 25, 25, 21, 25, 25, 25, 25, 25, 25, 20, 19, 25, 25, 25, 25,
|
|
17, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 16, 25, 25, 25, 25,
|
|
13, 25, 12, 25, 25, 25, 10, 25, 25, 25, 25, 25, 11, 25, 25, 25,
|
|
25, 25, 9, 25, 25, 25, 14, 25, 25, 25, 25, 7, 25, 25, 25, 6,
|
|
25, 25, 25, 25, 25, 22, 25, 25, 25, 25, 15, 25, 25, 25, 25, 8,
|
|
25, 25, 25, 5, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, 3,
|
|
-1, -1, -1, -1, 2, -1, -1, 1, -1, -1, -1, -1, -1, 0, -1,
|
|
};
|
|
|
|
#line 140 "CLEX.LXI"
|
|
|
|
#define LLTYPE1 char
|
|
|
|
LLTYPE1 _Nlextab[] {
|
|
174, 174, 174, 174, 174, 174, 174, 174, 174, 7, 9, 174, 174, 174, 174, 174,
|
|
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
|
|
8, 31, 10, 148, 50, 27, 22, 11, 6, 5, 24, 18, 12, 16, 13, 25,
|
|
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 17, 15, 45, 33, 28, 14,
|
|
19, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 4, 23, 3, 26, 50,
|
|
32, 124, 76, 81, 68, 115, 65, 99, 50, 97, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 103, 128, 58, 53, 50, 92, 50, 50, 50, 2, 20, 1, 21, 30,
|
|
29, 41, 34, 37, 39, 54, 40, 44, 55, 43, 56, 42, 46, 47, 49, 49,
|
|
49, 49, 49, 49, 49, 49, 49, 49, 38, 57, 36, 59, 52, 60, 61, 62,
|
|
63, 64, 66, 67, 70, 71, 72, 73, 51, 51, 51, 51, 51, 51, 51, 51,
|
|
51, 51, 74, 77, 78, 79, 80, 83, 84, 52, 52, 52, 52, 52, 52, 52,
|
|
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
|
|
52, 52, 52, 85, 86, 87, 88, 52, 35, 52, 52, 52, 52, 52, 52, 52,
|
|
52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
|
|
52, 52, 52, 69, 89, 90, 91, 93, 94, 95, 96, 98, 100, 75, 101, 102,
|
|
104, 109, 82, 106, 107, 108, 110, 111, 112, 113, 114, 116, 117, 118, 105, 120,
|
|
121, 122, 123, 125, 126, 127, 129, 119, 130, 131, 132, 133, 135, 136, 137, 138,
|
|
140, 139, 141, 142, 134, 143, 145, 146, 147, 168, 160, 156, 151, 152, 149, 153,
|
|
154, 144, 155, 150, 157, 158, 159, 165, 162, 161, 163, 164, 166, 167, 169, 170,
|
|
171, 172, 173,
|
|
};
|
|
|
|
LLTYPE1 _Clextab[] {
|
|
-1, -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, 16, 0, 0, 0, 0, 0,
|
|
18, 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, 22, 0, 25, 0,
|
|
31, 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, 20, 28,
|
|
28, 33, 33, 36, 38, 53, 33, 33, 54, 33, 55, 33, 45, 45, 48, 48,
|
|
48, 48, 48, 48, 48, 48, 48, 48, 33, 56, 33, 58, 50, 59, 60, 61,
|
|
62, 63, 65, 66, 69, 70, 71, 72, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 73, 76, 77, 78, 79, 82, 83, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 84, 85, 86, 87, 50, 33, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 68, 81, 89, 90, 92, 93, 94, 95, 97, 99, 68, 100, 101,
|
|
103, 104, 81, 105, 106, 107, 109, 110, 111, 112, 113, 115, 116, 117, 104, 119,
|
|
120, 121, 122, 124, 125, 126, 128, 115, 129, 130, 131, 132, 134, 135, 136, 137,
|
|
139, 128, 140, 141, 128, 142, 144, 145, 146, 148, 148, 149, 150, 151, 148, 152,
|
|
153, 139, 154, 149, 156, 157, 158, 160, 161, 160, 162, 163, 165, 166, 168, 169,
|
|
170, 171, 172,
|
|
};
|
|
|
|
LLTYPE1 _Dlextab[] {
|
|
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
|
|
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
|
|
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
|
|
174, 48, 174, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
|
|
50, 50, 50, 50, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
|
|
174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
|
|
};
|
|
|
|
int _Blextab[] {
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
13, 0, 21, 0, 2, 0, 54, 0, 0, 52, 0, 0, 66, 0, 0, 35,
|
|
0, 92, 0, 0, 69, 0, 72, 0, 0, 0, 0, 0, 0, 80, 0, 0,
|
|
94, 0, 120, 0, 0, 23, 31, 27, 43, 0, 34, 45, 57, 59, 59, 59,
|
|
0, 51, 49, 0, 142, 62, 68, 49, 59, 62, 0, 0, 65, 79, 84, 75,
|
|
0, 147, 73, 68, 106, 102, 96, 113, 0, 130, 145, 0, 143, 143, 141, 149,
|
|
0, 149, 0, 141, 138, 144, 0, 155, 154, 142, 146, 151, 0, 157, 148, 148,
|
|
164, 152, 0, 159, 153, 168, 0, 155, 171, 159, 164, 0, 158, 160, 166, 0,
|
|
173, 158, 180, 171, 181, 0, 179, 169, 187, 183, 0, 191, 174, 186, 194, 0,
|
|
177, 196, 180, 0, 197, 197, 201, 193, 186, 204, 205, 0, 208, 208, 208, 0,
|
|
203, 212, 209, 213, 0, 201, 216, 0, 217, 217, 215, 211, 221, 0, 0,
|
|
};
|
|
|
|
struct lextab lextab {
|
|
174, /* last state */
|
|
_Dlextab, /* defaults */
|
|
_Nlextab, /* next */
|
|
_Clextab, /* check */
|
|
_Blextab, /* base */
|
|
322, /* 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 */
|
|
0, /* no illegal class */
|
|
};
|