Annotation of 43BSD/contrib/icon/tran/optab, revision 1.1

1.1     ! root        1: #include "lex.h"
        !             2: 
        !             3: /*
        !             4:  * State tables for operator recognition.
        !             5:  */
        !             6: 
        !             7: struct optab state0[] = {       /* initial state */
        !             8:    { ',', A_IMMRET, (int) &toktab[   ] },      /* ","     */
        !             9:    { '.', A_IMMRET, (int) &toktab[   ] },      /* "."     */
        !            10:    { '[', A_IMMRET, (int) &toktab[   ] },      /* "["     */
        !            11:    { ']', A_IMMRET, (int) &toktab[   ] },      /* "]"     */
        !            12:    { '(', A_IMMRET, (int) &toktab[   ] },      /* "("     */
        !            13:    { ')', A_IMMRET, (int) &toktab[   ] },      /* ")"     */
        !            14:    { ';', A_IMMRET, (int) &toktab[   ] },      /* ";"     */
        !            15:    { '{', A_IMMRET, (int) &toktab[   ] },      /* "{"     */
        !            16:    { '}', A_IMMRET, (int) &toktab[   ] },      /* "}"     */
        !            17:    { '!', A_IMMRET, (int) &toktab[   ] },      /* "!"     */
        !            18:    { '\\', A_IMMRET, (int) &toktab[   ] },      /* "\\"    */
        !            19:    { ':', A_GOTO,   (int) state1       },      /* ":" ... */
        !            20:    { '<', A_GOTO,   (int) state2       },      /* "<" ... */
        !            21:    { '>', A_GOTO,   (int) state4       },      /* ">" ... */
        !            22:    { '=', A_GOTO,   (int) state5       },      /* "=" ... */
        !            23:    { '|', A_GOTO,   (int) state3       },      /* "|" ... */
        !            24:    { '+', A_GOTO,   (int) state7       },      /* "+" ... */
        !            25:    { '-', A_GOTO,   (int) state8       },      /* "-" ... */
        !            26:    { '*', A_GOTO,   (int) state9       },      /* "*" ... */
        !            27:    { '^', A_GOTO,   (int) state6       },      /* "^" ... */
        !            28:    { '~', A_GOTO,   (int) state29      },      /* "~" ... */
        !            29:    { '/', A_GOTO,   (int) state21      },      /* "/" ... */
        !            30:    { '%', A_GOTO,   (int) state30      },      /* "%" ... */
        !            31:    { '?', A_GOTO,   (int) state36      },      /* "?" ... */
        !            32:    { '&', A_GOTO,   (int) state38      },      /* "&" ... */
        !            33:    { '@', A_GOTO,   (int) state40      },      /* "@" ... */
        !            34:    { 0,   A_ERROR,  0            }
        !            35:    };
        !            36: 
        !            37: struct optab state1[] = {       /* ":" */
        !            38:    { '=', A_GOTO,   (int) state10      },      /* ":=" ... */
        !            39:    { 0,   A_RETURN, (int) &toktab[   ] }       /* ":"      */
        !            40:    };
        !            41: 
        !            42: struct optab state2[] = {       /* "<" */
        !            43:    { '-', A_GOTO,   (int) state11      },      /* "<-" ... */
        !            44:    { '<', A_GOTO,   (int) state32      },      /* "<<" ... */
        !            45:    { ':', A_GOTO,   (int) state46      },      /* "<:" ... */
        !            46:    { '=', A_GOTO,   (int) state56      },      /* "<=" ... */
        !            47:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "<"      */
        !            48:    };
        !            49: 
        !            50: struct optab state3[] = {       /* "|" */
        !            51:    { '|', A_GOTO,   (int) state22      },      /* "||" ... */
        !            52:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "|"      */
        !            53:    };
        !            54: 
        !            55: struct optab state4[] = {       /* ">" */
        !            56:    { '>', A_GOTO,   (int) state33      },      /* ">>" ... */
        !            57:    { ':', A_GOTO,   (int) state44      },      /* ">:" ... */
        !            58:    { '=', A_GOTO,   (int) state57      },      /* ">=" ... */
        !            59:    { 0,   A_RETURN, (int) &toktab[   ] }       /* ">"      */
        !            60:    };
        !            61: 
        !            62: struct optab state5[] = {        /* "=" */
        !            63:    { '=', A_GOTO,   (int) state12      },      /* "==" ... */
        !            64:    { ':', A_GOTO,   (int) state42      },      /* "=:" ... */
        !            65:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "="      */
        !            66:    };
        !            67: 
        !            68: struct optab state6[] = {        /* "^" */
        !            69:    { ':', A_GOTO,   (int) state23      },      /* "^:" ... */
        !            70:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "^"      */
        !            71:    };
        !            72: 
        !            73: struct optab state7[] = {       /* "+" */
        !            74:    { ':', A_GOTO,   (int) state15      },      /* "+:" ... */
        !            75:    { '+', A_GOTO,   (int) state16      },      /* "++" ... */
        !            76:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "+"      */
        !            77:    };
        !            78: 
        !            79: struct optab state8[] = {        /* "-" */
        !            80:    { ':', A_GOTO,   (int) state17      },      /* "-:" ... */
        !            81:    { '-', A_GOTO,   (int) state18      },      /* "--" ... */
        !            82:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "-"      */
        !            83:    };
        !            84: 
        !            85: struct optab state9[] = {        /* "*" */
        !            86:    { ':', A_GOTO,   (int) state19      },      /* "*:" ... */
        !            87:    { '*', A_GOTO,   (int) state20      },      /* "**" ... */
        !            88:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "*"      */
        !            89:    };
        !            90: 
        !            91: struct optab state10[] = {       /* ":=" */
        !            92:    { ':', A_IMMRET, (int) &toktab[   ] },      /* ":=:" */
        !            93:    { 0,   A_RETURN, (int) &toktab[   ] }       /* ":="  */
        !            94:    };
        !            95: 
        !            96: struct optab state11[] = {       /* "<-" */
        !            97:    { '>', A_IMMRET, (int) &toktab[   ] },      /* "<->" */
        !            98:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "<-"  */
        !            99:    };
        !           100: 
        !           101: struct optab state12[] = {       /* "==" */
        !           102:    { '=', A_GOTO,   (int) state61      },      /* "===" ... */
        !           103:    { ':', A_GOTO,   (int) state48      },      /* "==:" ... */
        !           104:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "=="  */
        !           105:    };
        !           106: 
        !           107: struct optab state13[] = {       /* "~=" */
        !           108:    { '=', A_GOTO,   (int) state14      },      /* "~==" ... */
        !           109:    { ':', A_GOTO,   (int) state43      },      /* "~=:" ... */
        !           110:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "~="      */
        !           111:    };
        !           112: 
        !           113: struct optab state14[] = {       /* "~==" */
        !           114:    { ':', A_GOTO,   (int) state49      },      /* "~==:" ... */
        !           115:    { '=', A_GOTO,   (int) state60      },      /* "~===" ... */
        !           116:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "~=="  */
        !           117:    };
        !           118: 
        !           119: struct optab state15[] = {       /* "+:" */
        !           120:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "+:=" */
        !           121:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "+:"  */
        !           122:    };
        !           123: 
        !           124: struct optab state16[] = {       /* "++" */
        !           125:    { ':', A_GOTO,   (int) state24      },      /* "++:" ... */
        !           126:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "++"      */
        !           127:    };
        !           128: 
        !           129: struct optab state17[] = {       /* "-:" */
        !           130:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "-:=" */
        !           131:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "-:"  */
        !           132:    };
        !           133: 
        !           134: struct optab state18[] = {       /* "--" */
        !           135:    { ':', A_GOTO,   (int) state25      },      /* "--:" ... */
        !           136:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "--" */
        !           137:    };
        !           138: 
        !           139: struct optab state19[] = {      /* "*:" */
        !           140:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "*:=" */
        !           141:    { 0,   A_ERROR,  0            }
        !           142:    };
        !           143: 
        !           144: struct optab state20[] = {       /* "**" */
        !           145:    { ':', A_GOTO,   (int) state26      },      /* "**:" ... */
        !           146:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "**"      */
        !           147:    };
        !           148: 
        !           149: struct optab state21[] = {       /* "/" */
        !           150:    { ':', A_GOTO,   (int) state27      },      /* "/:" ... */
        !           151:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "/"      */
        !           152:    };
        !           153: 
        !           154: struct optab state22[] = {       /* "||" */
        !           155:    { ':', A_GOTO,   (int) state28      },      /* "||:" ... */
        !           156:    { '|', A_GOTO,   (int) state34      },      /* "|||" ... */
        !           157:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "||"      */
        !           158:    };
        !           159: 
        !           160: struct optab state23[] = {       /* "^:" */
        !           161:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "^:=" */
        !           162:    { 0,   A_ERROR,  0            }
        !           163:    };
        !           164: 
        !           165: struct optab state24[] = {       /* "++:" */
        !           166:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "++:=" */
        !           167:    { 0,   A_ERROR,  0            }
        !           168:    };
        !           169: 
        !           170: struct optab state25[] = {       /* "--:" */
        !           171:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "--:=" */
        !           172:    { 0,   A_ERROR,  0            }
        !           173:    };
        !           174: 
        !           175: struct optab state26[] = {       /* "**:" */
        !           176:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "**:=" */
        !           177:    { 0,   A_ERROR,  0            }
        !           178:    };
        !           179: 
        !           180: struct optab state27[] = {       /* "/:" */
        !           181:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "/:=" */
        !           182:    { 0,   A_ERROR,  0            }
        !           183:    };
        !           184: 
        !           185: struct optab state28[] = {      /* "||:" */
        !           186:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "||:=" */
        !           187:    { 0,   A_ERROR,  0            }
        !           188:    };
        !           189: 
        !           190: struct optab state29[] = {       /* "~" */
        !           191:    { '=', A_GOTO,   (int) state13      },      /* "~=" ... */
        !           192:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "~"      */
        !           193:    };
        !           194: 
        !           195: struct optab state30[] = {       /* "%" */
        !           196:    { ':', A_GOTO,   (int) state31      },      /* "%:" ... */
        !           197:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "%"      */
        !           198:    };
        !           199: 
        !           200: struct optab state31[] = {       /* "%:" */
        !           201:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "%:=" */
        !           202:    { 0,   A_ERROR,  0            }
        !           203:    };
        !           204: 
        !           205: struct optab state32[] = {       /* "<<" */
        !           206:    { ':', A_GOTO,   (int) state52      },      /* "<<:" ... */
        !           207:    { '=', A_GOTO,   (int) state58      },      /* "<<=" ... */
        !           208:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "<<"     */
        !           209:    };
        !           210: 
        !           211: struct optab state33[] = {       /* ">>" */
        !           212:    { ':', A_GOTO,   (int) state50      },      /* ">>:" ... */
        !           213:    { '=', A_GOTO,   (int) state59      },      /* ">>=" ... */
        !           214:    { 0,   A_RETURN, (int) &toktab[   ] }       /* ">>"     */
        !           215:    };
        !           216: 
        !           217: struct optab state34[] = {       /* "|||" */
        !           218:    { ':', A_GOTO,   (int) state35      },      /* "|||:" ... */
        !           219:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "|||"      */
        !           220:    };
        !           221: 
        !           222: struct optab state35[] = {       /* "|||:" */
        !           223:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "|||:=" */
        !           224:    { 0,   A_ERROR,  0            }
        !           225:    };
        !           226: 
        !           227: struct optab state36[] = {        /* "?" */
        !           228:    { ':', A_GOTO,   (int) state37      },      /* "?:" ... */
        !           229:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "?"      */
        !           230:    };
        !           231: 
        !           232: struct optab state37[] = {       /* "?:" */
        !           233:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "?:=" */
        !           234:    { 0,   A_ERROR,  0            }
        !           235:    };
        !           236: 
        !           237: struct optab state38[] = {        /* "&" */
        !           238:    { ':', A_GOTO,   (int) state39      },      /* "&:" ... */
        !           239:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "&"      */
        !           240:    };
        !           241: 
        !           242: struct optab state39[] = {       /* "&:" */
        !           243:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "&:=" */
        !           244:    { 0,   A_ERROR,  0            }
        !           245:    };
        !           246: 
        !           247: struct optab state40[] = {        /* "@" */
        !           248:    { ':', A_GOTO,   (int) state41      },      /* "@:" ... */
        !           249:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "@"      */
        !           250:    };
        !           251: 
        !           252: struct optab state41[] = {      /* "@:" */
        !           253:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "@:=" */
        !           254:    { 0,   A_ERROR,  0            }
        !           255:    };
        !           256: 
        !           257: struct optab state42[] = {       /* "=:" */
        !           258:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "=:=" */
        !           259:    { 0,   A_ERROR,  0            }
        !           260:    };
        !           261: 
        !           262: struct optab state43[] = {       /* "~=:" */
        !           263:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "~=:=" */
        !           264:    { 0,   A_ERROR,  0            }
        !           265:    };
        !           266: 
        !           267: struct optab state44[] = {       /* ">:" */
        !           268:    { '=', A_IMMRET, (int) &toktab[   ] },      /* ">:=" */
        !           269:    { 0,   A_ERROR,  0            }
        !           270:    };
        !           271: 
        !           272: struct optab state45[] = {       /* ">=:" */
        !           273:    { '=', A_IMMRET, (int) &toktab[   ] },      /* ">=:=" */
        !           274:    { 0,   A_ERROR,  0            }
        !           275:    };
        !           276: 
        !           277: struct optab state46[] = {      /* "<:" */
        !           278:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "<:=" */
        !           279:    { 0,   A_ERROR,  0            }
        !           280:    };
        !           281: 
        !           282: struct optab state47[] = {       /* "<=:" */
        !           283:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "<=:=" */
        !           284:    { 0,   A_ERROR,  0            }
        !           285:    };
        !           286: 
        !           287: struct optab state48[] = {       /* "==:" */
        !           288:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "==:=" */
        !           289:    { 0,   A_ERROR,  0            }
        !           290:    };
        !           291: 
        !           292: struct optab state49[] = {       /* "~==:" */
        !           293:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "~==:=" */
        !           294:    { 0,   A_ERROR,  0            }
        !           295:    };
        !           296: 
        !           297: struct optab state50[] = {      /* ">>:" */
        !           298:    { '=', A_IMMRET, (int) &toktab[   ] },      /* ">>:=" */
        !           299:    { 0,   A_ERROR,  0            }
        !           300:    };
        !           301: 
        !           302: struct optab state51[] = {       /* ">>=:" */
        !           303:    { '=', A_IMMRET, (int) &toktab[   ] },      /* ">>=:=" */
        !           304:    { 0,   A_ERROR,  0            }
        !           305:    };
        !           306: 
        !           307: struct optab state52[] = {       /* "<<:" */
        !           308:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "<<:=" */
        !           309:    { 0,   A_ERROR,  0            }
        !           310:    };
        !           311: 
        !           312: struct optab state53[] = {       /* "<<=:" */
        !           313:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "<<=:=" */
        !           314:    { 0,   A_ERROR,  0            }
        !           315:    };
        !           316: 
        !           317: struct optab state54[] = {      /* "===:" */
        !           318:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "===:=" */
        !           319:    { 0,   A_ERROR,  0            }
        !           320:    };
        !           321: 
        !           322: struct optab state55[] = {       /* "~===:" */
        !           323:    { '=', A_IMMRET, (int) &toktab[   ] },      /* "~===:=" */
        !           324:    { 0,   A_ERROR,  0            }
        !           325:    };
        !           326: 
        !           327: struct optab state56[] = {        /* "<=" */
        !           328:    { ':', A_GOTO,   (int) state47      },      /* "<=:" ... */
        !           329:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "<="      */
        !           330:    };
        !           331: 
        !           332: struct optab state57[] = {        /* ">=" */
        !           333:    { ':', A_GOTO,   (int) state45      },      /* ">=:" ... */
        !           334:    { 0,   A_RETURN, (int) &toktab[   ] }       /* ">="      */
        !           335:    };
        !           336: 
        !           337: struct optab state58[] = {        /* "<<=" */
        !           338:    { ':', A_GOTO,   (int) state53      },      /* "<<=:" ... */
        !           339:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "<<="      */
        !           340:    };
        !           341: 
        !           342: struct optab state59[] = {       /* ">>=" */
        !           343:    { ':', A_GOTO,   (int) state51     },      /* ">>=:" ... */
        !           344:    { 0,   A_RETURN, (int) &toktab[   ] }       /* ">>="      */
        !           345:    };
        !           346: 
        !           347: struct optab state60[] = {        /* "~===" */
        !           348:    { ':', A_GOTO,   (int) state55      },      /* "~===:" ... */
        !           349:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "~==="      */
        !           350:    };
        !           351: 
        !           352: struct optab state61[] = {        /* "===" */
        !           353:    { ':', A_GOTO,   (int) state54      },      /* "===:" ... */
        !           354:    { 0,   A_RETURN, (int) &toktab[   ] }       /* "==="      */
        !           355:    };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.