/* break out words, output cap + word(inverted) */
static char sccsid[] = "@(#)nwords.l 4.2 (Berkeley) 82/11/06";
#define OUT() for(i=yyleng-1;i>=0; i--)putchar(yytext[i]); putchar('\n')
#define OUT1(nam) printf("%c:%s\n",nam,yytext)
#define OUTN(string) printf("%s\n",string)
int NOCAPS = 0; /* if set all caps are turned to lower case */
yytext[0] = tolower(yytext[0]);
if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
yytext[i] = tolower(yytext[i]);
for(i=0;i<yyleng;i++)yytext[i] = tolower(yytext[i]);
yytext[0] = tolower(yytext[0]);
yytext[2] = tolower(yytext[2]);
if(yyleng==1 && yytext[0] == 'I'){
yytext[0] = tolower(yytext[0]);
({N}*[,])*({N}+".")+[ \t\n]+{C} {
if(yytext[i] == '.')break;
([hH]e"/"[sS]he)|([sS]he"/"[hH]e) {
if(isupper(yytext[0]))yytext[0] = tolower(yytext[0]);
([hH]is"/"[hH]er)|([hH]er"/"[hH]is) {
if(isupper(yytext[0]))yytext[0] = tolower(yytext[0]);
[ \t`]*[a-zA-Z0-9.]*("\/"[a-zA-Z0-9.]+)+[']* {
if(yytext[yyleng-1] == '.'){
if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
{N}+([,]{N}+)*("."{N}+)*[']*[s]* {
{N}*([,]{N}+)*("."{N}+)+[']*[s]* {
{N}+([,]{N}+)*("."{N}*)*[']*[s]* {
if(yytext[yyleng-1] == '.')dot=1;
if(isupper(yytext[i]))yytext[i]=tolower(yytext[i]);
"$"{N}+([,]{N}+)*("."{N}*)* {
if(yytext[yyleng-1] == '.')dot=1;
yytext[0] = yytext[yyleng-1];
if(yytext[0] == ',' || yytext[0] == ')')
yytext[0] = tolower(yytext[0]);
OUT1(lookup("will",1,0));
OUT1(lookup("have",1,0));
OUT1(lookup("would",1,0));
if((j = lookup(yytext,1,0)) != 0){
yytext[0] = toupper(yytext[0]);
if(yytext[yyleng-1] == 'y' && cap == 0){
switch(yytext[yyleng-2]){
case 'c': look(cy,yyleng-2,NOUN);
case 'f': look(fy,yyleng-2,VERB);
case 'l': look(ly,yyleng-2,ADV);
case 'g': if(yytext[yyleng-3] == 'o'){
case 'r': switch(yytext[yyleng-3]){
case 'a': look(ary,yyleng-3,ADJ);
case 'o': look(ory,yyleng-3,ADJ);
case 'e': look(ery,yyleng-3,NOUN);
default: look(ry,yyleng-2,NOUN);
case 't': if(yytext[yyleng-3] == 'i')look(ity,yyleng-3,NOUN);
else look(ty,yyleng-2,ADJ);
if(!NOCAPS)yytext[0] = toupper(yytext[0]);
if((j=abbrev(yytext,1,0)) != 0){
if(NOCAPS)yytext[0] = tolower(yytext[0]);
yytext[i] = tolower(yytext[i]);
/* fprintf(stderr,"nwords funny char: %c\n",yytext[0])*/ ;
if(flg == 1)yytext[0] = tolower(yytext[0]);
for(ii=yyleng-1;yytext[ii] != '\''; ii--);
if((j=lookup(yytext,1,0)) != 0){
if(flg==1 && !NOCAPS)yytext[0] = toupper(yytext[0]);
putchar(':'); putchar('\n');
if(freopen(argv[1],"r",stdin)==NULL) {
fprintf(stderr,"%s: cannot open\n", argv[1]);
if(isalnum((c=input()))){
while(!isspace((c=input() )))