More semantic typing - a step towards eliminating packing.
authorEric S. Raymond <esr@thyrsus.com>
Mon, 19 Jun 2017 18:20:45 +0000 (14:20 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Mon, 19 Jun 2017 18:20:45 +0000 (14:20 -0400)
actions.c
advent.h
main.c

index cc252b577f82a74ee7afdfffa9e59bf917f48fde..c547b3536c59bccfce75640f8ed71a4329be5b2b 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -5,16 +5,11 @@
 #include "newdb.h"
 
 /* Limit visibility of ugly globals.  Eventually these should go away. */
-extern long WD1, WD1X, WD2, WD2X;
+extern token_t WD1, WD1X, WD2, WD2X;
 
-/*
- * Action handlers.  Eventually we'll do lookup through a method table
- * that calls these.
- */
-
-static int fill(token_t verb, token_t);
+static int fill(token_t, token_t);
 
-static int attack(FILE *input, long verb, token_t obj)
+static int attack(FILE *input, token_t verb, token_t obj)
 /*  Attack.  Assume target if unambiguous.  "Throw" also links here.
  *  Attackable objects fall into two categories: enemies (snake,
  *  dwarf, etc.)  and others (bird, clam, machine).  Ambiguous if 2
@@ -110,7 +105,7 @@ static int attack(FILE *input, long verb, token_t obj)
     return GO_CLEAROBJ;
 }
 
-static int bigwords(long foo)
+static int bigwords(token_t foo)
 /*  FEE FIE FOE FOO (AND FUM).  Advance to next state if given in proper order.
  *  Look up WD1 in section 3 of vocab to determine which word we've got.  Last
  *  word zips the eggs back to the giant room (unless already there). */
@@ -1000,7 +995,7 @@ static int wave(token_t verb, token_t obj)
     }
 }
 
-int action(FILE *input, enum speechpart part, long verb, token_t obj)
+int action(FILE *input, enum speechpart part, token_t verb, token_t obj)
 /*  Analyse a verb.  Remember what it was, go back for object if second word
  *  unless verb is "say", which snarfs arbitrary second word.
  */
index 0bf87bb7f7991bc0214a4fe1a0c42cf12a794f86..08ae5e3cf7f3c546504a1efe9c2e26723aae44e0 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -178,7 +178,7 @@ extern long AMBER, ATTACK, AXE, BACK, BATTERY, BEAR,
 enum speechpart {unknown, intransitive, transitive};
 
 void initialise(void);
-int action(FILE *input, enum speechpart part, long verb, token_t obj);
+int action(FILE *input, enum speechpart part, token_t verb, token_t obj);
 
 /* Phase codes for action returns.
  * These were at one time FORTRAN line numbers.
diff --git a/main.c b/main.c
index c1272c4281ae0b14b8edb10851ca209535d62baf..8791293e3dbbdededbf967e824e177998fce652a 100644 (file)
--- a/main.c
+++ b/main.c
@@ -41,7 +41,7 @@ long AMBER, AXE, BACK, BATTERY, BEAR, BIRD, BLOOD,
      RUBY, RUG, SAPPH, SAY, SIGN, SNAKE,
      STEPS, STREAM, THROW, TRIDENT, TROLL, TROLL2,
      URN, VASE, VEND, VOLCANO, WATER;
-long WD1, WD1X, WD2, WD2X;
+token_t WD1, WD1X, WD2, WD2X;
 
 FILE  *logfp = NULL, *rfp = NULL;
 bool oldstyle = false;