#include "lex.h" /* * State tables for operator recognition. */ struct optab state0[] = { /* initial state */ { ',', A_IMMRET, (int) &toktab[ ] }, /* "," */ { '.', A_IMMRET, (int) &toktab[ ] }, /* "." */ { '[', A_IMMRET, (int) &toktab[ ] }, /* "[" */ { ']', A_IMMRET, (int) &toktab[ ] }, /* "]" */ { '(', A_IMMRET, (int) &toktab[ ] }, /* "(" */ { ')', A_IMMRET, (int) &toktab[ ] }, /* ")" */ { ';', A_IMMRET, (int) &toktab[ ] }, /* ";" */ { '{', A_IMMRET, (int) &toktab[ ] }, /* "{" */ { '}', A_IMMRET, (int) &toktab[ ] }, /* "}" */ { '!', A_IMMRET, (int) &toktab[ ] }, /* "!" */ { '\\', A_IMMRET, (int) &toktab[ ] }, /* "\\" */ { ':', 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[ ] } /* ":" */ }; struct optab state2[] = { /* "<" */ { '-', A_GOTO, (int) state11 }, /* "<-" ... */ { '<', A_GOTO, (int) state32 }, /* "<<" ... */ { ':', A_GOTO, (int) state46 }, /* "<:" ... */ { '=', A_GOTO, (int) state56 }, /* "<=" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "<" */ }; struct optab state3[] = { /* "|" */ { '|', A_GOTO, (int) state22 }, /* "||" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "|" */ }; struct optab state4[] = { /* ">" */ { '>', A_GOTO, (int) state33 }, /* ">>" ... */ { ':', A_GOTO, (int) state44 }, /* ">:" ... */ { '=', A_GOTO, (int) state57 }, /* ">=" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* ">" */ }; struct optab state5[] = { /* "=" */ { '=', A_GOTO, (int) state12 }, /* "==" ... */ { ':', A_GOTO, (int) state42 }, /* "=:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "=" */ }; struct optab state6[] = { /* "^" */ { ':', A_GOTO, (int) state23 }, /* "^:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "^" */ }; struct optab state7[] = { /* "+" */ { ':', A_GOTO, (int) state15 }, /* "+:" ... */ { '+', A_GOTO, (int) state16 }, /* "++" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "+" */ }; struct optab state8[] = { /* "-" */ { ':', A_GOTO, (int) state17 }, /* "-:" ... */ { '-', A_GOTO, (int) state18 }, /* "--" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "-" */ }; struct optab state9[] = { /* "*" */ { ':', A_GOTO, (int) state19 }, /* "*:" ... */ { '*', A_GOTO, (int) state20 }, /* "**" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "*" */ }; struct optab state10[] = { /* ":=" */ { ':', A_IMMRET, (int) &toktab[ ] }, /* ":=:" */ { 0, A_RETURN, (int) &toktab[ ] } /* ":=" */ }; struct optab state11[] = { /* "<-" */ { '>', A_IMMRET, (int) &toktab[ ] }, /* "<->" */ { 0, A_RETURN, (int) &toktab[ ] } /* "<-" */ }; struct optab state12[] = { /* "==" */ { '=', A_GOTO, (int) state61 }, /* "===" ... */ { ':', A_GOTO, (int) state48 }, /* "==:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "==" */ }; struct optab state13[] = { /* "~=" */ { '=', A_GOTO, (int) state14 }, /* "~==" ... */ { ':', A_GOTO, (int) state43 }, /* "~=:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "~=" */ }; struct optab state14[] = { /* "~==" */ { ':', A_GOTO, (int) state49 }, /* "~==:" ... */ { '=', A_GOTO, (int) state60 }, /* "~===" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "~==" */ }; struct optab state15[] = { /* "+:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "+:=" */ { 0, A_RETURN, (int) &toktab[ ] } /* "+:" */ }; struct optab state16[] = { /* "++" */ { ':', A_GOTO, (int) state24 }, /* "++:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "++" */ }; struct optab state17[] = { /* "-:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "-:=" */ { 0, A_RETURN, (int) &toktab[ ] } /* "-:" */ }; struct optab state18[] = { /* "--" */ { ':', A_GOTO, (int) state25 }, /* "--:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "--" */ }; struct optab state19[] = { /* "*:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "*:=" */ { 0, A_ERROR, 0 } }; struct optab state20[] = { /* "**" */ { ':', A_GOTO, (int) state26 }, /* "**:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "**" */ }; struct optab state21[] = { /* "/" */ { ':', A_GOTO, (int) state27 }, /* "/:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "/" */ }; struct optab state22[] = { /* "||" */ { ':', A_GOTO, (int) state28 }, /* "||:" ... */ { '|', A_GOTO, (int) state34 }, /* "|||" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "||" */ }; struct optab state23[] = { /* "^:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "^:=" */ { 0, A_ERROR, 0 } }; struct optab state24[] = { /* "++:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "++:=" */ { 0, A_ERROR, 0 } }; struct optab state25[] = { /* "--:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "--:=" */ { 0, A_ERROR, 0 } }; struct optab state26[] = { /* "**:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "**:=" */ { 0, A_ERROR, 0 } }; struct optab state27[] = { /* "/:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "/:=" */ { 0, A_ERROR, 0 } }; struct optab state28[] = { /* "||:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "||:=" */ { 0, A_ERROR, 0 } }; struct optab state29[] = { /* "~" */ { '=', A_GOTO, (int) state13 }, /* "~=" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "~" */ }; struct optab state30[] = { /* "%" */ { ':', A_GOTO, (int) state31 }, /* "%:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "%" */ }; struct optab state31[] = { /* "%:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "%:=" */ { 0, A_ERROR, 0 } }; struct optab state32[] = { /* "<<" */ { ':', A_GOTO, (int) state52 }, /* "<<:" ... */ { '=', A_GOTO, (int) state58 }, /* "<<=" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "<<" */ }; struct optab state33[] = { /* ">>" */ { ':', A_GOTO, (int) state50 }, /* ">>:" ... */ { '=', A_GOTO, (int) state59 }, /* ">>=" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* ">>" */ }; struct optab state34[] = { /* "|||" */ { ':', A_GOTO, (int) state35 }, /* "|||:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "|||" */ }; struct optab state35[] = { /* "|||:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "|||:=" */ { 0, A_ERROR, 0 } }; struct optab state36[] = { /* "?" */ { ':', A_GOTO, (int) state37 }, /* "?:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "?" */ }; struct optab state37[] = { /* "?:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "?:=" */ { 0, A_ERROR, 0 } }; struct optab state38[] = { /* "&" */ { ':', A_GOTO, (int) state39 }, /* "&:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "&" */ }; struct optab state39[] = { /* "&:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "&:=" */ { 0, A_ERROR, 0 } }; struct optab state40[] = { /* "@" */ { ':', A_GOTO, (int) state41 }, /* "@:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "@" */ }; struct optab state41[] = { /* "@:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "@:=" */ { 0, A_ERROR, 0 } }; struct optab state42[] = { /* "=:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "=:=" */ { 0, A_ERROR, 0 } }; struct optab state43[] = { /* "~=:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "~=:=" */ { 0, A_ERROR, 0 } }; struct optab state44[] = { /* ">:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* ">:=" */ { 0, A_ERROR, 0 } }; struct optab state45[] = { /* ">=:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* ">=:=" */ { 0, A_ERROR, 0 } }; struct optab state46[] = { /* "<:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "<:=" */ { 0, A_ERROR, 0 } }; struct optab state47[] = { /* "<=:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "<=:=" */ { 0, A_ERROR, 0 } }; struct optab state48[] = { /* "==:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "==:=" */ { 0, A_ERROR, 0 } }; struct optab state49[] = { /* "~==:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "~==:=" */ { 0, A_ERROR, 0 } }; struct optab state50[] = { /* ">>:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* ">>:=" */ { 0, A_ERROR, 0 } }; struct optab state51[] = { /* ">>=:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* ">>=:=" */ { 0, A_ERROR, 0 } }; struct optab state52[] = { /* "<<:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "<<:=" */ { 0, A_ERROR, 0 } }; struct optab state53[] = { /* "<<=:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "<<=:=" */ { 0, A_ERROR, 0 } }; struct optab state54[] = { /* "===:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "===:=" */ { 0, A_ERROR, 0 } }; struct optab state55[] = { /* "~===:" */ { '=', A_IMMRET, (int) &toktab[ ] }, /* "~===:=" */ { 0, A_ERROR, 0 } }; struct optab state56[] = { /* "<=" */ { ':', A_GOTO, (int) state47 }, /* "<=:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "<=" */ }; struct optab state57[] = { /* ">=" */ { ':', A_GOTO, (int) state45 }, /* ">=:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* ">=" */ }; struct optab state58[] = { /* "<<=" */ { ':', A_GOTO, (int) state53 }, /* "<<=:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "<<=" */ }; struct optab state59[] = { /* ">>=" */ { ':', A_GOTO, (int) state51 }, /* ">>=:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* ">>=" */ }; struct optab state60[] = { /* "~===" */ { ':', A_GOTO, (int) state55 }, /* "~===:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "~===" */ }; struct optab state61[] = { /* "===" */ { ':', A_GOTO, (int) state54 }, /* "===:" ... */ { 0, A_RETURN, (int) &toktab[ ] } /* "===" */ };