From c04fa7e44622754c3b8b1c60d5a36e8d7182340d Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Mon, 12 Jun 2017 07:58:24 -0400 Subject: [PATCH] Goto elimination. --- main.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/main.c b/main.c index e3c7085..17bde07 100644 --- a/main.c +++ b/main.c @@ -824,8 +824,12 @@ L2607: game.foobar=(game.foobar>0 ? -game.foobar : 0); if (game.trndex <= TRNVLS) game.thresh=MOD(TRNVAL[game.trndex],100000)+1; } - if (VERB == SAY && WD2 > 0)VERB=0; - if (VERB == SAY) goto L4090; + if (VERB == SAY && WD2 > 0) + VERB=0; + if (VERB == SAY) { + part=transitive; + goto Laction; + } if (game.tally == 0 && INDEEP(game.loc) && game.loc != 33) --game.clock1; @@ -1013,17 +1017,12 @@ L2630: switch (KQ-1) { case 0: goto L8; - case 1: goto L5000; - case 2: goto L4000; + case 1: part=unknown; obj = KMOD; goto Laction; + case 2: part=intransitive; VERB = KMOD; goto Laction; case 3: RSPEAK(KMOD); goto L2012; } BUG(22); -/* Verb and object analysis moved to separate module. */ - -L4000: part=intransitive; VERB = KMOD; goto Laction; -L4090: part=transitive; goto Laction; -L5000: part=unknown; obj = KMOD; Laction: switch (action(cmdin, part, VERB, obj)) { case 2: return true; -- 2.31.1