4.3BSD/usr/contrib/icon/tran/optab.c

Compare this file to the similar file:
Show the results in this format:

#include "lex.h"

/*
 * State tables for operator recognition.
 */

struct optab state0[] = {       /* initial state */
   { ',', A_IMMRET, (int) &toktab[ 59] },      /* ","     */
   { '.', A_IMMRET, (int) &toktab[ 63] },      /* "."     */
   { '[', A_IMMRET, (int) &toktab[ 70] },      /* "["     */
   { ']', A_IMMRET, (int) &toktab[ 99] },      /* "]"     */
   { '(', A_IMMRET, (int) &toktab[ 79] },      /* "("     */
   { ')', A_IMMRET, (int) &toktab[100] },      /* ")"     */
   { ';', A_IMMRET, (int) &toktab[101] },      /* ";"     */
   { '{', A_IMMRET, (int) &toktab[ 69] },      /* "{"     */
   { '}', A_IMMRET, (int) &toktab[ 98] },      /* "}"     */
   { '!', A_IMMRET, (int) &toktab[ 54] },      /* "!"     */
   { '\\', A_IMMRET, (int) &toktab[ 53] },      /* "\\"    */
   { ':', A_GOTO,   (int) state1       },      /* ":" ... */
   { '<', A_GOTO,   (int) state2       },      /* "<" ... */
   { '>', A_GOTO,   (int) state4       },      /* ">" ... */
   { '=', A_GOTO,   (int) state5       },      /* "=" ... */
   { '|', A_GOTO,   (int) state3       },      /* "|" ... */
   { '+', A_GOTO,   (int) state7       },      /* "+" ... */
   { '-', A_GOTO,   (int) state8       },      /* "-" ... */
   { '*', A_GOTO,   (int) state9       },      /* "*" ... */
   { '^', A_GOTO,   (int) state6       },      /* "^" ... */
   { '~', A_GOTO,   (int) state29      },      /* "~" ... */
   { '/', A_GOTO,   (int) state21      },      /* "/" ... */
   { '%', A_GOTO,   (int) state30      },      /* "%" ... */
   { '?', A_GOTO,   (int) state36      },      /* "?" ... */
   { '&', A_GOTO,   (int) state38      },      /* "&" ... */
   { '@', A_GOTO,   (int) state40      },      /* "@" ... */
   { 0,   A_ERROR,  0            }
   };

struct optab state1[] = {       /* ":" */
   { '=', A_GOTO,   (int) state10      },      /* ":=" ... */
   { 0,   A_RETURN, (int) &toktab[ 58] }       /* ":"      */
   };

struct optab state2[] = {       /* "<" */
   { '-', A_GOTO,   (int) state11      },      /* "<-" ... */
   { '<', A_GOTO,   (int) state32      },      /* "<<" ... */
   { ':', A_GOTO,   (int) state46      },      /* "<:" ... */
   { '=', A_GOTO,   (int) state56      },      /* "<=" ... */
   { 0,   A_RETURN, (int) &toktab[ 90] }       /* "<"      */
   };

struct optab state3[] = {       /* "|" */
   { '|', A_GOTO,   (int) state22      },      /* "||" ... */
   { 0,   A_RETURN, (int) &toktab[ 55] }       /* "|"      */
   };

struct optab state4[] = {       /* ">" */
   { '>', A_GOTO,   (int) state33      },      /* ">>" ... */
   { ':', A_GOTO,   (int) state44      },      /* ">:" ... */
   { '=', A_GOTO,   (int) state57      },      /* ">=" ... */
   { 0,   A_RETURN, (int) &toktab[ 88] }       /* ">"      */
   };

struct optab state5[] = {        /* "=" */
   { '=', A_GOTO,   (int) state12      },      /* "==" ... */
   { ':', A_GOTO,   (int) state42      },      /* "=:" ... */
   { 0,   A_RETURN, (int) &toktab[ 86] }       /* "="      */
   };

struct optab state6[] = {        /* "^" */
   { ':', A_GOTO,   (int) state23      },      /* "^:" ... */
   { 0,   A_RETURN, (int) &toktab[ 56] }       /* "^"      */
   };

struct optab state7[] = {       /* "+" */
   { ':', A_GOTO,   (int) state15      },      /* "+:" ... */
   { '+', A_GOTO,   (int) state16      },      /* "++" ... */
   { 0,   A_RETURN, (int) &toktab[ 93] }       /* "+"      */
   };

struct optab state8[] = {        /* "-" */
   { ':', A_GOTO,   (int) state17      },      /* "-:" ... */
   { '-', A_GOTO,   (int) state18      },      /* "--" ... */
   { 0,   A_RETURN, (int) &toktab[ 81] }       /* "-"      */
   };

struct optab state9[] = {        /* "*" */
   { ':', A_GOTO,   (int) state19      },      /* "*:" ... */
   { '*', A_GOTO,   (int) state20      },      /* "**" ... */
   { 0,   A_RETURN, (int) &toktab[105] }       /* "*"      */
   };

struct optab state10[] = {       /* ":=" */
   { ':', A_IMMRET, (int) &toktab[107] },      /* ":=:" */
   { 0,   A_RETURN, (int) &toktab[ 35] }       /* ":="  */
   };

struct optab state11[] = {       /* "<-" */
   { '>', A_IMMRET, (int) &toktab[ 97] },      /* "<->" */
   { 0,   A_RETURN, (int) &toktab[ 96] }       /* "<-"  */
   };

struct optab state12[] = {       /* "==" */
   { '=', A_GOTO,   (int) state61      },      /* "===" ... */
   { ':', A_GOTO,   (int) state48      },      /* "==:" ... */
   { 0,   A_RETURN, (int) &toktab[ 73] }       /* "=="  */
   };

struct optab state13[] = {       /* "~=" */
   { '=', A_GOTO,   (int) state14      },      /* "~==" ... */
   { ':', A_GOTO,   (int) state43      },      /* "~=:" ... */
   { 0,   A_RETURN, (int) &toktab[ 91] }       /* "~="      */
   };

struct optab state14[] = {       /* "~==" */
   { ':', A_GOTO,   (int) state49      },      /* "~==:" ... */
   { '=', A_GOTO,   (int) state60      },      /* "~===" ... */
   { 0,   A_RETURN, (int) &toktab[ 78] }       /* "~=="  */
   };

struct optab state15[] = {       /* "+:" */
   { '=', A_IMMRET, (int) &toktab[ 94] },      /* "+:=" */
   { 0,   A_RETURN, (int) &toktab[ 92] }       /* "+:"  */
   };

struct optab state16[] = {       /* "++" */
   { ':', A_GOTO,   (int) state24      },      /* "++:" ... */
   { 0,   A_RETURN, (int) &toktab[109] }       /* "++"      */
   };

struct optab state17[] = {       /* "-:" */
   { '=', A_IMMRET, (int) &toktab[ 82] },      /* "-:=" */
   { 0,   A_RETURN, (int) &toktab[ 80] }       /* "-:"  */
   };

struct optab state18[] = {       /* "--" */
   { ':', A_GOTO,   (int) state25      },      /* "--:" ... */
   { 0,   A_RETURN, (int) &toktab[ 64] }       /* "--" */
   };

struct optab state19[] = {      /* "*:" */
   { '=', A_IMMRET, (int) &toktab[106] },      /* "*:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state20[] = {       /* "**" */
   { ':', A_GOTO,   (int) state26      },      /* "**:" ... */
   { 0,   A_RETURN, (int) &toktab[ 67] }       /* "**"      */
   };

struct optab state21[] = {       /* "/" */
   { ':', A_GOTO,   (int) state27      },      /* "/:" ... */
   { 0,   A_RETURN, (int) &toktab[103] }       /* "/"      */
   };

struct optab state22[] = {       /* "||" */
   { ':', A_GOTO,   (int) state28      },      /* "||:" ... */
   { '|', A_GOTO,   (int) state34      },      /* "|||" ... */
   { 0,   A_RETURN, (int) &toktab[ 60] }       /* "||"      */
   };

struct optab state23[] = {       /* "^:" */
   { '=', A_IMMRET, (int) &toktab[ 57] },      /* "^:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state24[] = {       /* "++:" */
   { '=', A_IMMRET, (int) &toktab[110] },      /* "++:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state25[] = {       /* "--:" */
   { '=', A_IMMRET, (int) &toktab[ 65] },      /* "--:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state26[] = {       /* "**:" */
   { '=', A_IMMRET, (int) &toktab[ 68] },      /* "**:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state27[] = {       /* "/:" */
   { '=', A_IMMRET, (int) &toktab[104] },      /* "/:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state28[] = {      /* "||:" */
   { '=', A_IMMRET, (int) &toktab[ 61] },      /* "||:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state29[] = {       /* "~" */
   { '=', A_GOTO,   (int) state13      },      /* "~=" ... */
   { 0,   A_RETURN, (int) &toktab[108] }       /* "~"      */
   };

struct optab state30[] = {       /* "%" */
   { ':', A_GOTO,   (int) state31      },      /* "%:" ... */
   { 0,   A_RETURN, (int) &toktab[ 83] }       /* "%"      */
   };

struct optab state31[] = {       /* "%:" */
   { '=', A_IMMRET, (int) &toktab[ 84] },      /* "%:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state32[] = {       /* "<<" */
   { ':', A_GOTO,   (int) state52      },      /* "<<:" ... */
   { '=', A_GOTO,   (int) state58      },      /* "<<=" ... */
   { 0,   A_RETURN, (int) &toktab[ 77] }       /* "<<"     */
   };

struct optab state33[] = {       /* ">>" */
   { ':', A_GOTO,   (int) state50      },      /* ">>:" ... */
   { '=', A_GOTO,   (int) state59      },      /* ">>=" ... */
   { 0,   A_RETURN, (int) &toktab[ 75] }       /* ">>"     */
   };

struct optab state34[] = {       /* "|||" */
   { ':', A_GOTO,   (int) state35      },      /* "|||:" ... */
   { 0,   A_RETURN, (int) &toktab[ 71] }       /* "|||"      */
   };

struct optab state35[] = {       /* "|||:" */
   { '=', A_IMMRET, (int) &toktab[ 72] },      /* "|||:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state36[] = {        /* "?" */
   { ':', A_GOTO,   (int) state37      },      /* "?:" ... */
   { 0,   A_RETURN, (int) &toktab[ 95] }       /* "?"      */
   };

struct optab state37[] = {       /* "?:" */
   { '=', A_IMMRET, (int) &toktab[102] },      /* "?:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state38[] = {        /* "&" */
   { ':', A_GOTO,   (int) state39      },      /* "&:" ... */
   { 0,   A_RETURN, (int) &toktab[ 62] }       /* "&"      */
   };

struct optab state39[] = {       /* "&:" */
   { '=', A_IMMRET, (int) &toktab[ 38] },      /* "&:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state40[] = {        /* "@" */
   { ':', A_GOTO,   (int) state41      },      /* "@:" ... */
   { 0,   A_RETURN, (int) &toktab[ 36] }       /* "@"      */
   };

struct optab state41[] = {      /* "@:" */
   { '=', A_IMMRET, (int) &toktab[ 37] },      /* "@:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state42[] = {       /* "=:" */
   { '=', A_IMMRET, (int) &toktab[ 39] },      /* "=:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state43[] = {       /* "~=:" */
   { '=', A_IMMRET, (int) &toktab[ 45] },      /* "~=:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state44[] = {       /* ">:" */
   { '=', A_IMMRET, (int) &toktab[ 42] },      /* ">:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state45[] = {       /* ">=:" */
   { '=', A_IMMRET, (int) &toktab[ 41] },      /* ">=:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state46[] = {      /* "<:" */
   { '=', A_IMMRET, (int) &toktab[ 44] },      /* "<:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state47[] = {       /* "<=:" */
   { '=', A_IMMRET, (int) &toktab[ 43] },      /* "<=:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state48[] = {       /* "==:" */
   { '=', A_IMMRET, (int) &toktab[ 47] },      /* "==:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state49[] = {       /* "~==:" */
   { '=', A_IMMRET, (int) &toktab[ 52] },      /* "~==:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state50[] = {      /* ">>:" */
   { '=', A_IMMRET, (int) &toktab[ 49] },      /* ">>:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state51[] = {       /* ">>=:" */
   { '=', A_IMMRET, (int) &toktab[ 48] },      /* ">>=:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state52[] = {       /* "<<:" */
   { '=', A_IMMRET, (int) &toktab[ 51] },      /* "<<:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state53[] = {       /* "<<=:" */
   { '=', A_IMMRET, (int) &toktab[ 50] },      /* "<<=:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state54[] = {      /* "===:" */
   { '=', A_IMMRET, (int) &toktab[ 40] },      /* "===:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state55[] = {       /* "~===:" */
   { '=', A_IMMRET, (int) &toktab[ 46] },      /* "~===:=" */
   { 0,   A_ERROR,  0            }
   };

struct optab state56[] = {        /* "<=" */
   { ':', A_GOTO,   (int) state47      },      /* "<=:" ... */
   { 0,   A_RETURN, (int) &toktab[ 89] }       /* "<="      */
   };

struct optab state57[] = {        /* ">=" */
   { ':', A_GOTO,   (int) state45      },      /* ">=:" ... */
   { 0,   A_RETURN, (int) &toktab[ 87] }       /* ">="      */
   };

struct optab state58[] = {        /* "<<=" */
   { ':', A_GOTO,   (int) state53      },      /* "<<=:" ... */
   { 0,   A_RETURN, (int) &toktab[ 76] }       /* "<<="      */
   };

struct optab state59[] = {       /* ">>=" */
   { ':', A_GOTO,   (int) state51     },      /* ">>=:" ... */
   { 0,   A_RETURN, (int) &toktab[ 74] }       /* ">>="      */
   };

struct optab state60[] = {        /* "~===" */
   { ':', A_GOTO,   (int) state55      },      /* "~===:" ... */
   { 0,   A_RETURN, (int) &toktab[ 85] }       /* "~==="      */
   };

struct optab state61[] = {        /* "===" */
   { ':', A_GOTO,   (int) state54      },      /* "===:" ... */
   { 0,   A_RETURN, (int) &toktab[ 66] }       /* "==="      */
   };