Annotation of coherent/d/bin/uucheck/checkperms/lex.yy.c, revision 1.1.1.1

1.1       root        1: #line 1 checkperms.lex
                      2: #include <stdio.h>
                      3: extern char            yytext[];
                      4: extern int             yyleng;
                      5: extern int             yyscon;
                      6: extern int             yyline;
                      7: #define        input()         getchar()
                      8: #define        output(c)       putchar(c)
                      9: #define        unput(c)        yyback(c)
                     10: #define        ECHO            {register n=0; while (n<yyleng) output(yytext[n++]);}
                     11: #define        REJECT          yyrjct()
                     12: #define        BEGIN           yyscon = 
                     13: #line 2
                     14: #include "y.tab.h"
                     15: #include "checkperms.h"
                     16: #include "monitor.h"
                     17: 
                     18: #undef input
                     19: 
                     20: /*
                     21:  * input routine takes care of tab counting.
                     22:  */
                     23: input()
                     24: {
                     25:        int c;
                     26:        static int here = 0, atstart = 1, atpos = 0, level = 0, stops[20];
                     27: 
                     28:        while (atstart) {
                     29:                switch (c = my_getchar()) {
                     30:                case '\t':
                     31:                        atpos |= 7;
                     32:                case ' ':
                     33:                        atpos++;
                     34:                        break;
                     35:                case '\n':
                     36:                        atpos = 0;
                     37:                        lineno++;
                     38: #if 0
                     39: /* DEBUG */            fprintf(stderr, "lineno: %d\n", lineno);
                     40: #endif /* 0 */
                     41:                        break;
                     42:                default:
                     43:                        my_ungetchar(c);
                     44:                        atstart = 0;            
                     45:                        if (atpos > here) {
                     46:                                here = stops[++level] = atpos;
                     47:                                return(2);
                     48:                        }
                     49:                } /* switch (c = my_getchar()) */
                     50: 
                     51:        }
                     52: 
                     53:        if (atpos < here) {
                     54:                here = stops[--level];
                     55:                return(1);
                     56:        }
                     57: 
                     58:        switch (c = my_getchar()) {     
                     59:        case '\n':
                     60:                atstart = 1;
                     61:                atpos = 0;
                     62:                lineno++;
                     63: #if 0
                     64: /* DEBUG */            fprintf(stderr, "lineno: %d\n", lineno);
                     65: #endif /* 0 */
                     66:        }
                     67: 
                     68:        return(c);
                     69: }
                     70: 
                     71: lookup(s)
                     72:        char *s;
                     73: {
                     74:        int i;
                     75:        int retval;
                     76: 
                     77:        retval = 0;
                     78:        for (i = 0; i < NUM_TOKENS; ++i){
                     79:                if(strcmp(s, token_table[i].string) == 0) {
                     80:                        retval = token_table[i].value;
                     81: #ifdef DEBUG
                     82:                        fprintf(stderr,
                     83:                                "Token: %s, Line: %d\n",
                     84:                                token_table[i].string, lineno);
                     85: #endif DEBUG
                     86:                } /* if s matches token_table[i].string */
                     87:        } /* for i = 0 to NUM_TOKENS - walk through the table.  */
                     88: 
                     89:        return(retval);
                     90: } /* lookup() */
                     91: #line 80
                     92: 
                     93: #define        yyswitch(x)     yyctxt((x),(01))
                     94: _llic()
                     95: {
                     96:        return (input());
                     97: }
                     98: _lloc(c)
                     99: {
                    100:        output(c);
                    101: }
                    102: yylex()
                    103: {
                    104: #line 82
                    105: yyloop:
                    106:        switch (_lltk()) {
                    107:        case 0:
                    108:                if (yywrap())
                    109:                        return (EOF);
                    110:                break;
                    111:        case 01:
                    112: #line 82
                    113:                {
                    114:                            /* If we are at the bottom of a foreach */
                    115:                            if (host_looping && (current_path == NULL)) {
                    116:                                /* We probably want to rewind to the foreach.  */
                    117:                                if (handle_foreach_unindent() == UNINDENT) {
                    118:                                        /* No, we really are done with the
                    119:                                         * foreach loop.
                    120:                                         */
                    121:                                        return(UNINDENT);
                    122:                                }
                    123:                            } else { /* Otherwise, just an ordinary unindent.  */
                    124:                                return(UNINDENT);
                    125:                            } /* if we are at the bottom of a foreach */
                    126:                        } /* UNINDENT */
                    127:                break;
                    128: 
                    129:        case 02:
                    130: #line 97
                    131:                {
                    132:                            if (!ignore_next_indent) {
                    133:                                return(INDENT);
                    134:                            } else {
                    135:                                ignore_next_indent = FALSE;
                    136:                            } /* if !ignore_next_indent */
                    137:                        } /* INDENT */
                    138:                break;
                    139:        case 03:
                    140: #line 104
                    141:                { /* Ignore everything after a "#" to end of line.  */ }
                    142:                break;
                    143:        case 04:
                    144: #line 105
                    145:                { /* Internal blanks and commas are white space.  */ }
                    146:                break;
                    147:        case 05:
                    148: #line 106
                    149:                { copy_str(&chmod_string, yytext);
                    150:                          return(CHMOD_PERMISSION);
                    151:                        } /* Chmod pattern.  */
                    152:                break;
                    153:        case 06:
                    154: #line 109
                    155:                { copy_str(&ret_string, yytext);
                    156:                          /* Strip off the leading and trailing quotes.  */
                    157:                          ret_string[strlen(ret_string) - 1] = (char) NULL;
                    158:                          ++ret_string;
                    159:                          return(STRING);
                    160:                        } /* String pattern.  */
                    161:                break;
                    162:        case 07:
                    163: #line 115
                    164:                { int retval;
                    165:                          if ((retval = lookup(yytext)) == 0) {
                    166:                                fprintf(stderr,
                    167:                                        "Invalid token %s ",
                    168:                                        yytext);
                    169:                                FATAL("in line %d.\n", lineno);
                    170:                          } /* if retval invalid */
                    171:                          return(retval); }
                    172:                break;
                    173:        case 010:
                    174: #line 123
                    175:                { return(NL); }
                    176:                break;
                    177:        }
                    178:        goto yyloop;
                    179: 
                    180: }
                    181: #line 125
                    182: int
                    183: handle_foreach_unindent()
                    184: {
                    185: #if 0
                    186: /* DEBUG */    printf("%d: finished a declarator block.\n", lineno);
                    187: #endif /* 0 */
                    188:                if((current_host = next_host()) != NULL){
                    189: #if 0
                    190: /* DEBUG */        printf("%d: There is another host.\n", lineno);
                    191: #endif /* 0 */
                    192:                    saving_to_monitor_file = FALSE;
                    193:                    reading_from_monitor_file = TRUE;
                    194:                    rewind_monitor_file();
                    195:                    ignore_next_indent = TRUE;
                    196:                } else {
                    197: #if 0
                    198: /* DEBUG */        printf("%d: No more hosts.\n", lineno);
                    199: #endif /* 0 */
                    200:                    close_monitor_file();       /* Throw away old input.  */
                    201:                    saving_to_monitor_file = FALSE;
                    202:                    reading_from_monitor_file = FALSE;
                    203:                    host_looping = FALSE;       /* We're done looping.  */
                    204:                    return(UNINDENT);
                    205:                }
                    206:        return(0);
                    207: } /* handle_foreach_unindent() */
                    208: int yy_lxctab[] = {
                    209: 01000,00,010001,00,00,00,00,00,
                    210: 00,00,00,00,00,00,00,00,
                    211: 00,00,00,00,00,00,0100200,040,
                    212: 00,00,00,00,00,00,00,00,
                    213: 00,00,024000,00,00,00,00,00,
                    214: 00,00,00,00,00,00,00,00,
                    215: 00,00,00,00,00,00,00,0634,
                    216: 00,00,00,00,00,00,00,00,
                    217: 00,00,00,00,0177776,03777,0177776,03777,
                    218: 00,00,00,00,00,00,00,00,
                    219: 00,00,00,01777,0177776,03777,0177776,03777,
                    220: 00,00,00,00,00,00,00,00
                    221: };
                    222: int yy_lxbtab[] = {
                    223: 01<<000,01<<001,01<<002,01<<003,01<<004,01<<005,01<<006,01<<007,
                    224: 01<<010,01<<011,01<<012,01<<013,01<<014,01<<015,01<<016,01<<017
                    225: };
                    226: int yy_ctxtab[] = {
                    227: 00
                    228: };
                    229: int yy_lextab[] = {
                    230: 061,025,024,061,045,044,0161,01065,
                    231: 061,01351,0177761,0245,064,0101,06,0177761,
                    232: 0104,0161,026,0177761,046,066,0177761,0124,
                    233: 0261,01045,0161,0101,02705,01045,042,01351,
                    234: 0177661,01045,0144,0141,0106,061,0126,0177761,
                    235: 0164,061,0245,0204,00
                    236: };
                    237: int *yy_clist[050];
                    238: int *yy_nlist[050];

unix.superglobalmegacorp.com

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