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