|
|
BSD 4.3
#include "itran.h"
#include "lex.h"
#include "token.h"
/*
* Token table - contains an entry for each token type
* with printable name of token, token type, and flags
* for semicolon insertion.
*/
struct toktab toktab[] = {
/* token token type flags */
/* primitives */
"identifier", IDENT, BEGINNER+ENDER, /* 0 */
"integer-literal", INTLIT, BEGINNER+ENDER, /* 1 */
"real-literal", REALLIT, BEGINNER+ENDER, /* 2 */
"string-literal", STRINGLIT, BEGINNER+ENDER, /* 3 */
"cset-literal", CSETLIT, BEGINNER+ENDER, /* 4 */
"end-of-file", EOFX, 0, /* 5 */
/* reserved words */
"break", BREAK, BEGINNER+ENDER, /* 6 */
"by", BY, 0, /* 7 */
"case", CASE, BEGINNER, /* 8 */
"create", CREATE, BEGINNER, /* 9 */
"default", DEFAULT, BEGINNER, /* 10 */
"do", DO, 0, /* 11 */
"dynamic", DYNAMIC, BEGINNER, /* 12 */
"else", ELSE, 0, /* 13 */
"end", END, BEGINNER, /* 14 */
"every", EVERY, BEGINNER, /* 15 */
"fail", FAIL, BEGINNER+ENDER, /* 16 */
"global", GLOBAL, 0, /* 17 */
"if", IF, BEGINNER, /* 18 */
"initial", INITIAL, BEGINNER, /* 19 */
"link", LINK, 0, /* 20 */
"local", LOCAL, BEGINNER, /* 21 */
"next", NEXT, BEGINNER+ENDER, /* 22 */
"not", NOT, BEGINNER, /* 23 */
"of", OF, 0, /* 24 */
"procedure", PROCEDURE, 0, /* 25 */
"record", RECORD, 0, /* 26 */
"repeat", REPEAT, BEGINNER, /* 27 */
"return", RETURN, BEGINNER+ENDER, /* 28 */
"static", STATIC, BEGINNER, /* 29 */
"suspend", SUSPEND, BEGINNER+ENDER, /* 30 */
"then", THEN, 0, /* 31 */
"to", TO, 0, /* 32 */
"until", UNTIL, BEGINNER, /* 33 */
"while", WHILE, BEGINNER, /* 34 */
/* operators */
":=", ASSIGN, 0, /* 35 */
"@", AT, BEGINNER, /* 36 */
"@:=", AUGACT, 0, /* 37 */
"&:=", AUGAND, 0, /* 38 */
"=:=", AUGEQ, 0, /* 39 */
"===:=", AUGEQV, 0, /* 40 */
">=:=", AUGGE, 0, /* 41 */
">:=", AUGGT, 0, /* 42 */
"<=:=", AUGLE, 0, /* 43 */
"<:=", AUGLT, 0, /* 44 */
"~=:=", AUGNE, 0, /* 45 */
"~===:=", AUGNEQV, 0, /* 46 */
"==:=", AUGSEQ, 0, /* 47 */
">>=:=", AUGSGE, 0, /* 48 */
">>:=", AUGSGT, 0, /* 49 */
"<<=:=", AUGSLE, 0, /* 50 */
"<<:=", AUGSLT, 0, /* 51 */
"~==:=", AUGSNE, 0, /* 52 */
"\\", BACKSLASH, BEGINNER, /* 53 */
"!", BANG, BEGINNER, /* 54 */
"|", BAR, BEGINNER, /* 55 */
"^", CARET, BEGINNER, /* 56 */
"^:=", CARETASGN, 0, /* 57 */
":", COLON, 0, /* 58 */
",", COMMA, 0, /* 59 */
"||", CONCAT, BEGINNER, /* 60 */
"||:=", CONCATASGN, 0, /* 61 */
"&", CONJUNC, BEGINNER, /* 62 */
".", DOT, BEGINNER, /* 63 */
"--", DIFF, BEGINNER, /* 64 */
"--:=", DIFFASGN, 0, /* 65 */
"===", EQUIV, BEGINNER, /* 66 */
"**", INTER, BEGINNER, /* 67 */
"**:=", INTERASGN, 0, /* 68 */
"{", LBRACE, BEGINNER, /* 69 */
"[", LBRACK, BEGINNER, /* 70 */
"|||", LCONCAT, BEGINNER, /* 71 */
"|||:=", LCONCATASGN, BEGINNER, /* 72 */
"==", LEXEQ, BEGINNER, /* 73 */
">>=", LEXGE, 0, /* 74 */
">>", LEXGT, 0, /* 75 */
"<<=", LEXLE, 0, /* 76 */
"<<", LEXLT, 0, /* 77 */
"~==", LEXNE, BEGINNER, /* 78 */
"(", LPAREN, BEGINNER, /* 79 */
"-:", MCOLON, 0, /* 80 */
"-", MINUS, BEGINNER, /* 81 */
"-:=", MINUSASGN, 0, /* 82 */
"%", MOD, 0, /* 83 */
"%:=", MODASGN, 0, /* 84 */
"~===", NOTEQUIV, BEGINNER, /* 85 */
"=", NUMEQ, BEGINNER, /* 86 */
">=", NUMGE, 0, /* 87 */
">", NUMGT, 0, /* 88 */
"<=", NUMLE, 0, /* 89 */
"<", NUMLT, 0, /* 90 */
"~=", NUMNE, BEGINNER, /* 91 */
"+:", PCOLON, 0, /* 92 */
"+", PLUS, BEGINNER, /* 93 */
"+:=", PLUSASGN, 0, /* 94 */
"?", QMARK, BEGINNER, /* 95 */
"<-", REVASSIGN, 0, /* 96 */
"<->", REVSWAP, 0, /* 97 */
"}", RBRACE, ENDER, /* 98 */
"]", RBRACK, ENDER, /* 99 */
")", RPAREN, ENDER, /* 100 */
";", SEMICOL, 0, /* 101 */
"?:=", SCANASGN, 0, /* 102 */
"/", SLASH, BEGINNER, /* 103 */
"/:=", SLASHASGN, 0, /* 104 */
"*", STAR, BEGINNER, /* 105 */
"*:=", STARASGN, 0, /* 106 */
":=:", SWAP, 0, /* 107 */
"~", TILDE, BEGINNER, /* 108 */
"++", UNION, BEGINNER, /* 109 */
"++:=", UNIONASGN, 0, /* 110 */
"end-of-file", 0, 0,
};
/*
* restab[c] points to the first keyword in toktab which
* begins with the letter c.
*/
struct toktab *restab[] = {
NULL , NULL , /* _` */
NULL, &toktab[ 6], &toktab[ 8], &toktab[10], /* abcd */
&toktab[13], &toktab[16], &toktab[17], NULL, /* efgh */
&toktab[18], NULL, NULL, &toktab[20], /* ijkl */
NULL, &toktab[22], &toktab[24], &toktab[25], /* mnop */
NULL, &toktab[26], &toktab[29], &toktab[31], /* qrst */
&toktab[33], NULL, &toktab[34], NULL, /* uvwx */
NULL, NULL, /* yz */
};
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.