|
|
Initial revision
/*
* Token table structure.
*/
struct toktab {
char *t_word; /* token */
int t_type; /* token type returned by yylex */
int t_flags; /* flags for semicolon insertion */
};
extern struct toktab toktab[]; /* token table */
extern struct toktab *restab[]; /* reserved word index */
#define T_IDENT &toktab[0]
#define T_INT &toktab[1]
#define T_REAL &toktab[2]
#define T_STRING &toktab[3]
#define T_CSET &toktab[4]
#define T_EOF &toktab[5]
/*
* t_flags values for token table.
*/
#define BEGINNER 1 /* token can follow a semicolon */
#define ENDER 2 /* token can precede a semicolon */
/*
* Operator table - a finite-state automaton for recognizing Icon operators.
*/
struct optab {
char o_input;
char o_action;
int o_val;
};
extern struct optab state0[];
extern struct optab state1[];
extern struct optab state2[];
extern struct optab state3[];
extern struct optab state4[];
extern struct optab state5[];
extern struct optab state6[];
extern struct optab state7[];
extern struct optab state8[];
extern struct optab state9[];
extern struct optab state10[];
extern struct optab state11[];
extern struct optab state12[];
extern struct optab state13[];
extern struct optab state14[];
extern struct optab state15[];
extern struct optab state16[];
extern struct optab state17[];
extern struct optab state18[];
extern struct optab state19[];
extern struct optab state20[];
extern struct optab state21[];
extern struct optab state22[];
extern struct optab state23[];
extern struct optab state24[];
extern struct optab state25[];
extern struct optab state26[];
extern struct optab state27[];
extern struct optab state28[];
extern struct optab state29[];
extern struct optab state30[];
extern struct optab state31[];
extern struct optab state32[];
extern struct optab state33[];
extern struct optab state34[];
extern struct optab state35[];
extern struct optab state36[];
extern struct optab state37[];
extern struct optab state38[];
extern struct optab state39[];
extern struct optab state40[];
extern struct optab state41[];
extern struct optab state42[];
extern struct optab state43[];
extern struct optab state44[];
extern struct optab state45[];
extern struct optab state46[];
extern struct optab state47[];
extern struct optab state48[];
extern struct optab state49[];
extern struct optab state50[];
extern struct optab state51[];
extern struct optab state52[];
extern struct optab state53[];
extern struct optab state54[];
extern struct optab state55[];
extern struct optab state56[];
extern struct optab state57[];
extern struct optab state58[];
extern struct optab state59[];
extern struct optab state60[];
extern struct optab state61[];
/*
* o_action values.
*/
#define A_GOTO 1 /* shift input and goto new state o_val */
#define A_ERROR 2 /* illegal operator */
#define A_RETURN 3 /* return o_val, save input char */
#define A_IMMRET 4 /* return o_val, discard input char */
/*
* Miscellaneous.
*/
#define isoctal(c) ((c)>='0'&&(c)<='7') /* macro to test for octal digit */
#define NEXTCHAR nextchar() /* macro to get next character */
#define PUSHCHAR(c) peekc=(c) /* macro to push back a character */
#define COMMENT '#' /* comment beginner */
#define ESCAPE '\\' /* string literal escape character */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.