Annotation of 43BSDReno/pgrm/pascal/src/yyoptions.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1980 Regents of the University of California.
                      3:  * All rights reserved.  The Berkeley software License Agreement
                      4:  * specifies the terms and conditions for redistribution.
                      5:  */
                      6: 
                      7: #ifndef lint
                      8: static char sccsid[] = "@(#)yyoptions.c        5.1 (Berkeley) 6/5/85";
                      9: #endif not lint
                     10: 
                     11: #include "whoami.h"
                     12: #include "0.h"
                     13: #include "tree_ty.h"   /* must be included for yy.h */
                     14: #include "yy.h"
                     15: 
                     16: /*
                     17:  * Options processes the option
                     18:  * strings which can appear in
                     19:  * comments and returns the next character.
                     20:  */
                     21: options()
                     22: {
                     23:        register c;
                     24: #ifdef PI0
                     25:        register ch;
                     26: #endif
                     27:        register char *optp;
                     28: 
                     29:        c = readch();
                     30:        if (c != '$')
                     31:                return (c);
                     32:        do {
                     33:                c = readch();
                     34: #              ifdef PI0
                     35:                ch = c;
                     36: #              endif
                     37:                switch (c) {
                     38:                        case 'b':
                     39:                                optp = &opt( 'b' );
                     40:                                c = readch();
                     41:                                if (!digit(c))
                     42:                                        return (c);
                     43:                                *optp = c - '0';
                     44:                                c = readch();
                     45:                                break;
                     46: #                  ifdef PC
                     47:                        case 'C':
                     48:                                    /*
                     49:                                     *  C is a replacement for t, fake it.
                     50:                                     */
                     51:                                c = 't';
                     52:                                /* and fall through */
                     53:                        case 'g':
                     54: #                  endif PC
                     55:                        case 'k':
                     56:                        case 'l':
                     57:                        case 'n':
                     58:                        case 'p':
                     59:                        case 's':
                     60:                        case 't':
                     61:                        case 'u':
                     62:                        case 'w':
                     63:                        case 'z':
                     64:                                optp = &opt( c );
                     65:                                c = readch();
                     66:                                if (c == '+') {
                     67:                                        *optp = 1;
                     68:                                        c = readch();
                     69:                                } else if (c == '-') {
                     70:                                        *optp = 0;
                     71:                                        c = readch();
                     72:                                } else {
                     73:                                        return (c);
                     74:                                }
                     75:                                break;
                     76:                        default:
                     77:                                    return (c);
                     78:                        }
                     79: #ifdef PI0
                     80:                send(ROSET, ch, *optp);
                     81: #endif
                     82:        } while (c == ',');
                     83:        if ( opt( 'u' ) )
                     84:                setuflg();
                     85:        return (c);
                     86: }

unix.superglobalmegacorp.com

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