207 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| #
 | |
| # test file for mp (not comprehensive)
 | |
| #
 | |
| # v7 m4 does not have `decr'.
 | |
| #
 | |
| define(DECR,`eval($1-1)')
 | |
| #
 | |
| # include string macros
 | |
| #
 | |
| include(String.m4)
 | |
| #
 | |
| # create some fortrash strings for an even uglier language
 | |
| #
 | |
| string(TEXT, "text")
 | |
| string(DATA, "data")
 | |
| string(BEGIN, "begin")
 | |
| string(END, "end")
 | |
| string(IF, "if")
 | |
| string(THEN, "then")
 | |
| string(ELSE, "else")
 | |
| string(CASE, "case")
 | |
| string(REPEAT, "repeat")
 | |
| string(WHILE, "while")
 | |
| string(DEFAULT, "default")
 | |
| string(UNTIL, "until")
 | |
| string(FUNCTION, "function")
 | |
| string(PROCEDURE, "procedure")
 | |
| string(EXTERNAL, "external")
 | |
| string(FORWARD, "forward")
 | |
| string(TYPE, "type")
 | |
| string(VAR, "var")
 | |
| string(CONST, "const")
 | |
| string(PROGRAM, "program")
 | |
| string(INPUT, "input")
 | |
| string(OUTPUT, "output")
 | |
| #
 | |
| divert(2)
 | |
| diversion #1
 | |
| divert(3)
 | |
| diversion #2
 | |
| divert(4)
 | |
| diversion #3
 | |
| divert(5)
 | |
| diversion #4
 | |
| divert(0)
 | |
| define(abc,xxx)
 | |
| ifdef(`abc',defined,undefined)
 | |
| #
 | |
| # v7 m4 does this wrong. The right output is
 | |
| #      this is A vEry lon sEntEnCE
 | |
| # see m4 documentation for translit.
 | |
| #
 | |
| translit(`this is a very long sentence', abcdefg, ABCDEF)
 | |
| #
 | |
| # include towers-of-hanoi
 | |
| #
 | |
| include(Hanoi.m4)
 | |
| #
 | |
| # some reasonable set of disks
 | |
| #
 | |
| hanoi(6)
 | |
| #
 | |
| # include ackermann's function
 | |
| #
 | |
| include(Ack.m4)
 | |
| #
 | |
| # something like (3,3) will blow away un*x m4.
 | |
| #
 | |
| ack(2,3)
 | |
| #
 | |
| # include a square_root function for fixed nums
 | |
| #
 | |
| include(Sqroot.m4)
 | |
| #
 | |
| # some square roots.
 | |
| #
 | |
| square_root(15)
 | |
| square_root(100)
 | |
| square_root(-4)
 | |
| square_root(21372)
 | |
| #
 | |
| # some textual material for enjoyment.
 | |
| #
 | |
| [taken from the 'Clemson University Computer Newsletter',
 | |
|  September 1981, pp. 6-7]
 | |
| 
 | |
| I am a wizard in the magical Kingdom of Transformation and I
 | |
| slay dragons for a living.  Actually, I am a systems programmer.
 | |
| One of the problems with systems programming is explaining to
 | |
| non-computer enthusiasts what that is.  All of the terms I use to
 | |
| describe my job are totally meaningless to them.  Usually my response
 | |
| to questions about my work is to say as little as possible.  For
 | |
| instance, if someone asks what happened at work this week, I say
 | |
| "Nothing much" and then I change the subject.
 | |
| 
 | |
| With the assistance of my brother, a mechanical engineer, I have devised
 | |
| an analogy that everyone can understand.  The analogy describes the
 | |
| "Kingdom of Transformation" where travelers wander and are magically
 | |
| transformed.  This kingdom is the computer and the travelers are information.
 | |
| The purpose of the computer is to change information to a more meaningful
 | |
| forma.  The law of conservation applies here:  The computer never creates
 | |
| and never intentionally destroys data.  With no further ado, let us travel
 | |
| to the Kingdom of Transformation:
 | |
| 
 | |
| In a land far, far away, there is a magical kingdom called the Kingdom of
 | |
| Transformation.  A king rules over this land and employs a Council of
 | |
| Wizardry.  The main purpose of this kingdom is to provide a way for
 | |
| neighboring kingdoms to transform citizens into more useful citizens.  This
 | |
| is done by allowing the citizens to enter the kingdom at one of its ports
 | |
| and to travel any of the many routes in the kingdom.  They are magically
 | |
| transformed along the way.  The income of the Kingdom of Transformation
 | |
| comes from the many toll roads within its boundaries.
 | |
| 
 | |
| The Kingdom of Transformation was created when several kingdoms got
 | |
| together and discovered a mutual need for new talents and abilities for
 | |
| citizens.  They employed CTK, Inc. (Creators of Transformation, Inc.) to
 | |
| create this kingdom.  CTK designed the country, its transportation routes,
 | |
| and its laws of transformation, and created the major highway system.
 | |
| 
 | |
| Hazards
 | |
| =======
 | |
| 
 | |
| Because magic is not truly controllable, CTK invariably, but unknowingly,
 | |
| creates dragons.  Dragons are huge fire-breathing beasts which sometimes
 | |
| injure or kill travelers.  Fortunately, they do not travel, but always
 | |
| remain near their den.
 | |
| 
 | |
| Other hazards also exist which are potentially harmful.  As the roads
 | |
| become older and more weatherbeaten, pot-holes will develop, trees will
 | |
| fall on travelers, etc.  CTK maintenance men are called to fix these
 | |
| problems.
 | |
| 
 | |
| Wizards
 | |
| =======
 | |
| 
 | |
| The wizards play a major role in creating and maintaining the kingdom but
 | |
| get little credit for their work because it is performed secretly.  The
 | |
| wizards do not wan the workers or travelers to learn their incantations
 | |
| because many laws would be broken and chaos would result.
 | |
| 
 | |
| CTK's grand design is always general enough to be applicable in many
 | |
| different situations.  As a result, it is often difficult to use.  The
 | |
| first duty of the wizards is to tailor the transformation laws so as to be
 | |
| more beneficial and easier to use in their particular environment.
 | |
| 
 | |
| After creation of the kingdom, a major duty of the wizards is to search for
 | |
| and kill dragons.  If travelers do not return on time or if they return
 | |
| injured, the ruler of the country contacts the wizards.  If the wizards
 | |
| determine that the injury or death occurred due to the traveler's
 | |
| negligence, they provide the traveler's country with additional warnings.
 | |
| If not, they must determine if the cause was a road hazard or a dragon.  If
 | |
| the suspect a road hazard, they call in a CTK maintenance man to locate the
 | |
| hazard and to eliminate it, as in repairing the pothole in the road.  If
 | |
| they think that cause was a dragon, then they must find and slay it.
 | |
| 
 | |
| The most difficult part of eliminating a dragon is finding it.  Sometimes
 | |
| the wizard magically knows where the dragon's lair it, but often the wizard
 | |
| must send another traveler along the same route and watch to see where he
 | |
| disappears.  This sounds like a failsafe method for finding dragons (and a
 | |
| suicide mission for thr traveler) but the second traveler does not always
 | |
| disappear.  Some dragons eat any traveler who comes too close; others are
 | |
| very picky.
 | |
| 
 | |
| The wizards may call in CTK who designed the highway system and
 | |
| transformation laws to help devise a way to locate the dragon.  CTK also
 | |
| helps provide the right spell or incantation to slay the dragon. (There is
 | |
| no general spell to slay dragons; each dragon must be eliminated with a
 | |
| different spell.)
 | |
| 
 | |
| Because neither CTK nor wizards are perfect, spells to not always work
 | |
| correctly.  At best, nothing happens when the wrong spell is uttered.  At
 | |
| worst, the dragon becomes a much larger dragon or multiplies into several
 | |
| smaller ones.  In either case, new spells must be found.
 | |
| 
 | |
| If all existing dragons are quiet (i.e. have eaten sufficiently), wizards
 | |
| have time to do other things.  They hide in castles and practice spells and
 | |
| incatations.  They also devise shortcuts for travelers and new laws of
 | |
| transformation.
 | |
| 
 | |
| Changes in the Kingdom
 | |
| ======================
 | |
| 
 | |
| As new transformation kingdoms are created and old ones are maintained,
 | |
| CTK, Inc. is constantly learning new things.  It learns ways to avoid
 | |
| creating some of the dragons that they have previously created.  It also
 | |
| discovers new and better laws of transformation.  As a result, CTK will
 | |
| periodically create a new grand design which is far better than the old.
 | |
| The wizards determine when is a good time to implement this new design.
 | |
| This is when the tourist season is slow or when no important travelers
 | |
| (VIPs) are to arrive.  The kingdom must be closed for the actual
 | |
| implementation and is leter reopened as a new and better place to go.
 | |
| 
 | |
| A final question you might ask is what happens when the number of tourists
 | |
| becomes too great for the kingdom to handle in a reasonable period of time
 | |
| (i.e., the tourist lines at the ports are too long).  The Kingdom of
 | |
| Transformation has three options: (1) shorten the paths that a tourist must
 | |
| travel, or (2) convince CTK to develop a faster breed of horses so that the
 | |
| travelers can finish sooner, or (3) annex more territories so that the
 | |
| kingdom can handle more travelers.
 | |
| 
 | |
| Thus ends the story of the Kingdom of Transformation.  I hope this has
 | |
| explained my job to you:  I slay dragons for a living.
 | |
| 
 | |
| #
 | |
| #should do an automatic undivert..
 | |
| #
 | 
