annotate lisp/games/flame.el @ 172:a38aed19690b

Added tag r20-3b12 for changeset 929b76928fce
author cvs
date Mon, 13 Aug 2007 09:47:55 +0200
parents b9518feda344
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
72
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
1 ;;; flame.el --- Automated insults
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
2
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
3 ;; Copyright status Unknown
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
4
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
5 ;; Author: Unknown
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
6 ;; Adapted-By: Ian G. Batten, Batten@uk.ac.bham.multics
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
7 ;; Keywords: games
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
8
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
9 ;; This file is part of XEmacs.
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
10
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
11 ;; XEmacs is free software; you can redistribute it and/or modify it
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
12 ;; under the terms of the GNU General Public License as published by
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
14 ;; any later version.
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
15
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
16 ;; XEmacs is distributed in the hope that it will be useful, but
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
19 ;; General Public License for more details.
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
20
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
21 ;; You should have received a copy of the GNU General Public License
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
22 ;; along with XEmacs; see the file COPYING. If not, write to the Free
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
23 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
24 ;; 02111-1307, USA.
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
25
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
26 ;;; Synched up with: Not in FSF
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
27
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
28 ;;; Commentary:
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
29
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 ;;; "Flame" program. This has a chequered past.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 ;;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 ;;; The original was on a Motorola 286 running Vanilla V.1,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 ;;; about 2 years ago. It was couched in terms of a yacc (I think)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 ;;; script. I pulled the data out of it and rewrote it as a piece
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 ;;; of PL/1 on Multics. Now I've moved it into an emacs-lisp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 ;;; form. If the original author cares to contact me, I'd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 ;;; be very happy to credit you!
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 ;;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 ;;; Ian G. Batten, Batten@uk.ac.bham.multics
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 ;;;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41
72
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
42 ;;; Code:
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 (random t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 (defvar sentence
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 '((how can you say that (statement) \?)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 (I can\'t believe how (adjective) you are\.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 (only a (der-term) like you would say that (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 ((statement) \, huh\?) (so\, (statement) \?)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 ((statement) \, right\?) (I mean\, (sentence))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 (don\'t you realise that (statement) \?)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 (I firmly believe that (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 (let me tell you something\, you (der-term) \, (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 (furthermore\, you (der-term) \, (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 (I couldn\'t care less about your (thing) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 (How can you be so (adjective) \?)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 (you make me sick\.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 (it\'s well known that (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 ((statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 (it takes a (group-adj) (der-term) like you to say that (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 (I don\'t want to hear about your (thing) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 (you\'re always totally wrong\.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 (I\'ve never heard anything as ridiculous as the idea that (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 (you must be a real (der-term) to think that (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 (you (adjective) (group-adj) (der-term) \!)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 (you\'re probably (group-adj) yourself\.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 (you sound like a real (der-term) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 (why\, (statement) \!)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 (I have many (group-adj) friends\.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 (save the (thing) s\!) (no nukes\!) (ban (thing) s\!)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 (I\'ll bet you think that (thing) s are (adjective) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 (you know\, (statement) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 (your (quality) reminds me of a (thing) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 (you have the (quality) of a (der-term) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 ((der-term) \!)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 ((adjective) (group-adj) (der-term) \!)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 (you\'re a typical (group-adj) person\, totally (adjective) \.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 (man\, (sentence))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 (defvar sentence-loop (nconc sentence sentence))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 (defvar quality
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 '((ignorance) (stupidity) (worthlessness)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 (prejudice) (lack of intelligence) (lousiness)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 (bad grammar) (lousy spelling)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 (lack of common decency) (ugliness) (nastiness)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 (subtlety) (dishonesty) ((adjective) (quality))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 (defvar quality-loop (nconc quality quality))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 (defvar adjective
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 '((ignorant) (crass) (pathetic) (sick)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 (bloated) (malignant) (perverted) (sadistic)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 (stupid) (unpleasant) (lousy) (abusive) (bad)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 (braindamaged) (selfish) (improper) (nasty)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 (disgusting) (foul) (intolerable) (primitive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 (depressing) (dumb) (phoney)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 ((adjective) and (adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 (as (adjective) as a (thing))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 (defvar adjective-loop (nconc adjective adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 (defvar der-term
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 '(((adjective) (der-term)) (sexist) (fascist)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 (weakling) (coward) (beast) (peasant) (racist)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 (cretin) (fool) (jerk) (ignoramus) (idiot)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 (wanker) (rat) (slimebag) (DAF driver)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 (Neanderthal) (sadist) (drunk) (capitalist)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 (wimp) (dogmatist) (wally) (maniac)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 (whimpering scumbag) (pea brain) (arsehole)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 (moron) (goof) (incompetent) (lunkhead) (Nazi)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 (SysThug) ((der-term) (der-term))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116 (defvar der-term-loop (nconc der-term der-term))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 (defvar thing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 '(((adjective) (thing)) (computer)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 (Honeywell dps8) (whale) (operation)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 (sexist joke) (ten-incher) (dog) (MicroVAX II)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 (source license) (real-time clock)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 (mental problem) (sexual fantasy)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 (venereal disease) (Jewish grandmother)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 (cardboard cut-out) (punk haircut) (surfboard)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 (system call) (wood-burning stove)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 (graphics editor) (right wing death squad)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 (disease) (vegetable) (religion)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 (cruise missile) (bug fix) (lawyer) (copyright)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 (PAD)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 (defvar thing-loop (nconc thing thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 (defvar group-adj
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137 '((gay) (old) (lesbian) (young) (black)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 (Polish) ((adjective)) (white)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 (mentally retarded) (Nicaraguan) (homosexual)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 (dead) (underpriviledged) (religious)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 ((thing) \-loving) (feminist) (foreign)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 (intellectual) (crazy) (working) (unborn)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 (Chinese) (short) ((adjective)) (poor) (rich)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 (funny-looking) (Puerto Rican) (Mexican)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145 (Italian) (communist) (fascist) (Iranian)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 (Moonie)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 (defvar group-adj-loop (nconc group-adj group-adj))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 (defvar statement
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 '((your (thing) is great) ((thing) s are fun)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 ((person) is a (der-term))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 ((group-adj) people are (adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 (every (group-adj) person is a (der-term))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 (most (group-adj) people have (thing) s)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 (all (group-adj) dudes should get (thing) s)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 ((person) is (group-adj)) (trees are (adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 (if you\'ve seen one (thing) \, you\'ve seen them all)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 (you\'re (group-adj)) (you have a (thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 (my (thing) is pretty good)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 (the Martians are coming)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 (the (paper) is always right)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 (just because you read it in the (paper) that doesn\'t mean it\'s true)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 ((person) was (group-adj))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 ((person) \'s ghost is living in your (thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 (you look like a (thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 (the oceans are full of dirty fish)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 (people are dying every day)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 (a (group-adj) man ain\'t got nothing in the world these days)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 (women are inherently superior to men)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 (the system staff is fascist)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 (there is life after death)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 (the world is full of (der-term) s)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 (you remind me of (person)) (technology is evil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175 ((person) killed (person))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 (the Russians are tapping your phone)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 (the Earth is flat)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 (it\'s OK to run down (group-adj) people)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 (Multics is a really (adjective) operating system)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180 (the CIA killed (person))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 (the sexual revolution is over)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 (Lassie was (group-adj))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 (the (group-adj) people have really got it all together)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 (I was (person) in a previous life)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185 (breathing causes cancer)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 (it\'s fun to be really (adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 ((quality) is pretty fun) (you\'re a (der-term))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188 (the (group-adj) culture is fascinating)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189 (when ya gotta go ya gotta go)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 ((person) is (adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191 ((person) \'s (quality) is (adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 (it\'s a wonderful day)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 (everything is really a (thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 (there\'s a (thing) in (person) \'s brain)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 ((person) is a cool dude)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 ((person) is just a figment of your imagination)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 (the more (thing) s you have, the better)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 (life is a (thing)) (life is (quality))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 ((person) is (adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 ((group-adj) people are all (adjective) (der-term) s)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 ((statement) \, and (statement))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 ((statement) \, but (statement))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203 (I wish I had a (thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 (you should have a (thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 (you hope that (statement))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206 ((person) is secretly (group-adj))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 (you wish you were (group-adj))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 (you wish you were a (thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 (I wish I were a (thing))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 (you think that (statement))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 ((statement) \, because (statement))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 ((group-adj) people don\'t get married to (group-adj) people because (reason))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 ((group-adj) people are all (adjective) because (reason))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 ((group-adj) people are (adjective) \, and (reason))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215 (you must be a (adjective) (der-term) to think that (person) said (statement))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 ((group-adj) people are inherently superior to (group-adj) people)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217 (God is Dead)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 (defvar statement-loop (nconc statement statement))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 (defvar paper
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 '((Daily Mail) (Daily Express)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 (Centre Bulletin) (Sun) (Daily Mirror) (Pravda)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 (Daily Telegraph) (Beano) (Multics Manual)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 (defvar paper-loop (nconc paper paper))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 (defvar person
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 '((Reagan) (Ken Thompson) (Dennis Ritchie)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 (JFK) (the Pope) (Gadaffi) (Napoleon)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 (Karl Marx) (Groucho) (Michael Jackson)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 (Caesar) (Nietzsche) (Heidegger) (\"Head-for-the-mountains\" Bush)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235 (Henry Kissinger) (Nixon) (Castro) (Thatcher)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 (Attilla the Hun) (Alaric the Visigoth) (Hitler)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 (defvar person-loop (nconc person person))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240 (defvar reason
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 '((they don\'t want their children to grow up to be too lazy to steal)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 (they can\'t tell them apart from (group-adj) dudes)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 (they\'re too (adjective))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 ((person) wouldn\'t have done it)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 (they can\'t spray paint that small)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 (they don\'t have (thing) s) (they don\'t know how)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 (they can\'t afford (thing) s)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 (defvar reason-loop (nconc reason reason))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 (defmacro define-element (name)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 (let ((loop-to-use (intern (concat name "-loop"))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 (` (defun (, (intern name)) nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 (let ((step-forward (random 10)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255 (if (< step-forward 0) (setq step-forward (- step-forward)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 (prog1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257 (nth step-forward (, loop-to-use))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258 (setq (, loop-to-use) (nthcdr (1+ step-forward) (, loop-to-use)))))))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 (define-element "sentence")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261 (define-element "quality")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262 (define-element "adjective")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
263 (define-element "der-term")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
264 (define-element "group-adj")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265 (define-element "statement")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 (define-element "thing")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 (define-element "paper")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268 (define-element "person")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269 (define-element "reason")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 (defun *flame nil
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272 (flame-expand '(sentence)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 (defun flame-expand (object)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 (cond ((atom object)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276 object)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 (t (mapcar 'flame-expand (funcall (car object))))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 (defun flatten (list)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280 (cond ((atom list)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281 (list list))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282 (t (apply 'append (mapcar 'flatten list)))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284 ;;;###autoload
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285 (defun flame (arg)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286 "Generate ARG (default 1) sentences of half-crazed gibberish."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 (interactive "p")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 (let ((w (selected-window)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 (pop-to-buffer (get-buffer-create "*Flame*"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290 (goto-char (point-max))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291 (insert ?\n)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 (flame2 arg)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293 (select-window w)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 (defun flame2 (arg)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296 (let ((start (point)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 (flame1 arg)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298 (fill-region-as-paragraph start (point) t)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 (defun flame1 (arg)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301 (cond ((zerop arg) t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302 (t (insert (concat (sentence-ify (string-ify (append-suffixes-hack (flatten (*flame)))))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 (flame1 (1- arg)))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305 (defun sentence-ify (string)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306 (concat (upcase (substring string 0 1))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307 (substring string 1 (length string))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 " "))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 (defun string-ify (list)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311 (mapconcat
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 'symbol-name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313 ; '(lambda (x)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314 ; (format "%s" x))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315 list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316 " "))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318 (defun append-suffixes-hack (list)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319 (cond ((null list)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321 ((memq (nth 1 list)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 '(\? \. \, s\! \! s \'s \-loving))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323 (cons (intern (concat (symbol-name (nth 0 list))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324 (symbol-name (nth 1 list))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325 ;;(intern (format "%s%s" (nth 0 list) (nth 1 list)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326 (append-suffixes-hack (nthcdr 2 list))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327 (t (cons (nth 0 list)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328 (append-suffixes-hack (nthcdr 1 list))))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
329
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 (defun psychoanalyze-flamer ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331 "Mr. Angry goes to the analyst."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332 (interactive)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333 (doctor) ; start the psychotherapy
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334 (message "")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
335 (switch-to-buffer "*doctor*")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
336 (sit-for 0)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
337 (while (not (input-pending-p))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
338 (flame2 (if (= (random 2) 0) 2 1))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
339 (sit-for 0)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
340 (doctor-ret-or-read 1)))
72
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
341
b9518feda344 Import from CVS: tag r20-0b31
cvs
parents: 70
diff changeset
342 ;;; flame.el ends here