148116Sbostic /*- 2*62225Sbostic * Copyright (c) 1980, 1993 3*62225Sbostic * The Regents of the University of California. All rights reserved. 448116Sbostic * 548116Sbostic * %sccs.include.redist.c% 622209Sdist */ 7789Speter 814748Sthien #ifndef lint 9*62225Sbostic static char sccsid[] = "@(#)yyoptions.c 8.1 (Berkeley) 06/06/93"; 1048116Sbostic #endif /* not lint */ 11789Speter 12789Speter #include "whoami.h" 13789Speter #include "0.h" 1414748Sthien #include "tree_ty.h" /* must be included for yy.h */ 15789Speter #include "yy.h" 16789Speter 17789Speter /* 18789Speter * Options processes the option 19789Speter * strings which can appear in 20789Speter * comments and returns the next character. 21789Speter */ options()22789Speteroptions() 23789Speter { 2414748Sthien register c; 2514748Sthien #ifdef PI0 2614748Sthien register ch; 2714748Sthien #endif 28789Speter register char *optp; 29789Speter 30789Speter c = readch(); 31789Speter if (c != '$') 32789Speter return (c); 33789Speter do { 3414748Sthien c = readch(); 3514748Sthien # ifdef PI0 3614748Sthien ch = c; 3714748Sthien # endif 38789Speter switch (c) { 39789Speter case 'b': 40789Speter optp = &opt( 'b' ); 41789Speter c = readch(); 42789Speter if (!digit(c)) 43789Speter return (c); 44789Speter *optp = c - '0'; 45789Speter c = readch(); 46789Speter break; 47789Speter # ifdef PC 48789Speter case 'C': 49789Speter /* 50789Speter * C is a replacement for t, fake it. 51789Speter */ 52789Speter c = 't'; 53789Speter /* and fall through */ 54789Speter case 'g': 55789Speter # endif PC 56789Speter case 'k': 57789Speter case 'l': 58789Speter case 'n': 59789Speter case 'p': 60789Speter case 's': 61789Speter case 't': 62789Speter case 'u': 63789Speter case 'w': 64789Speter case 'z': 65789Speter optp = &opt( c ); 66789Speter c = readch(); 67789Speter if (c == '+') { 68789Speter *optp = 1; 69789Speter c = readch(); 70789Speter } else if (c == '-') { 71789Speter *optp = 0; 72789Speter c = readch(); 73789Speter } else { 74789Speter return (c); 75789Speter } 76789Speter break; 77789Speter default: 78789Speter return (c); 79789Speter } 80789Speter #ifdef PI0 81789Speter send(ROSET, ch, *optp); 82789Speter #endif 83789Speter } while (c == ','); 84789Speter if ( opt( 'u' ) ) 85789Speter setuflg(); 86789Speter return (c); 87789Speter } 88