[comp.sources.games] v02i033: pig - simple pig-latin translator

games-request@tekred.TEK.COM (08/29/87)

Submitted by: root <ihnp4!killer!ozdaltx!root>
Comp.sources.games: Volume 2, Issue 33
Archive-name: pig

	[Here's a simple pig-latin translator in lex.  I added
	 the Makefile and fixed a bug.  It's my recollection that
	 pig-latin is actual a little more complex than this, but
	 hey, I don't write 'em - I just post 'em.  -br]
	[P.S. How about some more games?  My queue is empty.]

[[This is a lex file for a pig-latin translator. If you don't
know what pig-latin is or are too young to remember... It
was a "language" popular in the 40-50's. The rules are
simple, move the first letter of each word to the end of the
word and add an 'a'. For example; "pig-latin" becomes
"igpa-atinla". I wrote this as an exercise trying to learn
lex. It needs some cleaning up, but it works as is. Words
that are all capitals are not parsed correctly, yet. Anyway,
enjoy.

	************************************************
	* Scotty                     *  Adapt          *
	* ihnp4!killer!ozdaltx!sysop *     Enjoy       *
	* "Ad Venerem Securiorem"    *        Survive  *]]
----------------------
#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  Makefile pig.l
# Wrapped by billr@tekred on Fri Aug 28 16:56:20 1987
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f Makefile -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Makefile\"
else
echo shar: Extracting \"Makefile\" \(102 characters\)
sed "s/^X//" >Makefile <<'END_OF_Makefile'
X# Makefile for pig - Pig-Latin translator
X
Xpig:	pig.l
X	lex pig.l
X	cc -o pig lex.yy.c -ll
X	rm lex.yy.c
END_OF_Makefile
if test 102 -ne `wc -c <Makefile`; then
    echo shar: \"Makefile\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f pig.l -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"pig.l\"
else
echo shar: Extracting \"pig.l\" \(331 characters\)
sed "s/^X//" >pig.l <<'END_OF_pig.l'
X/* PIG - a pig-latin translator */
X
X%{
X#include <ctype.h>
Xchar *c, start;
X%}
X%%
X[A-Za-z]+	{
X	if(yyleng >=2){
X		c=yytext;
X		if(isupper(yytext[0]))
X			start = tolower(yytext[0]);
X		else
X			start = yytext[0];
X		c++;
X		if(isupper(yytext[0]))
X			*c=toupper(*c);
X		printf("%s%ca",c,start);
X	} else {
X		ECHO;
X	}
X}
X%%
Xmain()
X{
X	yylex();
X}
END_OF_pig.l
if test 331 -ne `wc -c <pig.l`; then
    echo shar: \"pig.l\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of shell archive.
exit 0