summaryrefslogtreecommitdiffstats
path: root/contrib/awk/awklib/eg/network/eliza.awk
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/awk/awklib/eg/network/eliza.awk')
-rw-r--r--contrib/awk/awklib/eg/network/eliza.awk270
1 files changed, 0 insertions, 270 deletions
diff --git a/contrib/awk/awklib/eg/network/eliza.awk b/contrib/awk/awklib/eg/network/eliza.awk
deleted file mode 100644
index 2e022b4..0000000
--- a/contrib/awk/awklib/eg/network/eliza.awk
+++ /dev/null
@@ -1,270 +0,0 @@
-function SetUpServer() {
- SetUpEliza()
- TopHeader = \
- "<HTML><title>An HTTP-based System with GAWK</title>\
- <HEAD><META HTTP-EQUIV=\"Content-Type\"\
- CONTENT=\"text/html; charset=iso-8859-1\"></HEAD>\
- <BODY BGCOLOR=\"#ffffff\" TEXT=\"#000000\"\
- LINK=\"#0000ff\" VLINK=\"#0000ff\"\
- ALINK=\"#0000ff\"> <A NAME=\"top\">"
- TopDoc = "\
- <h2>Please choose one of the following actions:</h2>\
- <UL>\
- <LI>\
- <A HREF=" MyPrefix "/AboutServer>About this server</A>\
- </LI><LI>\
- <A HREF=" MyPrefix "/AboutELIZA>About Eliza</A></LI>\
- <LI>\
- <A HREF=" MyPrefix \
- "/StartELIZA>Start talking to Eliza</A></LI></UL>"
- TopFooter = "</BODY></HTML>"
-}
-function HandleGET() {
- # A real HTTP server would treat some parts of the URI as a file name.
- # We take parts of the URI as menu choices and go on accordingly.
- if(MENU[2] == "AboutServer") {
- Document = "This is not a CGI script.\
- This is an httpd, an HTML file, and a CGI script all \
- in one GAWK script. It needs no separate www-server, \
- no installation, and no root privileges.\
- <p>To run it, do this:</p><ul>\
- <li> start this script with \"gawk -f httpserver.awk\",</li>\
- <li> and on the same host let your www browser open location\
- \"http://localhost:8080\"</li>\
- </ul>\<p>\ Details of HTTP come from:</p><ul>\
- <li>Hethmon: Illustrated Guide to HTTP</p>\
- <li>RFC 2068</li></ul><p>JK 14.9.1997</p>"
- } else if (MENU[2] == "AboutELIZA") {
- Document = "This is an implementation of the famous ELIZA\
- program by Joseph Weizenbaum. It is written in GAWK and\
-/bin/sh: expad: command not found
- } else if (MENU[2] == "StartELIZA") {
- gsub(/\+/, " ", GETARG["YouSay"])
- # Here we also have to substitute coded special characters
- Document = "<form method=GET>" \
- "<h3>" ElizaSays(GETARG["YouSay"]) "</h3>\
- <p><input type=text name=YouSay value=\"\" size=60>\
- <br><input type=submit value=\"Tell her about it\"></p></form>"
- }
-}
-function ElizaSays(YouSay) {
- if (YouSay == "") {
- cost = 0
- answer = "HI, IM ELIZA, TELL ME YOUR PROBLEM"
- } else {
- q = toupper(YouSay)
- gsub("'", "", q)
- if(q == qold) {
- answer = "PLEASE DONT REPEAT YOURSELF !"
- } else {
- if (index(q, "SHUT UP") > 0) {
- answer = "WELL, PLEASE PAY YOUR BILL. ITS EXACTLY ... $"\
- int(100*rand()+30+cost/100)
- } else {
- qold = q
- w = "-" # no keyword recognized yet
- for (i in k) { # search for keywords
- if (index(q, i) > 0) {
- w = i
- break
- }
- }
- if (w == "-") { # no keyword, take old subject
- w = wold
- subj = subjold
- } else { # find subject
- subj = substr(q, index(q, w) + length(w)+1)
- wold = w
- subjold = subj # remember keyword and subject
- }
- for (i in conj)
- gsub(i, conj[i], q) # conjugation
- # from all answers to this keyword, select one randomly
- answer = r[indices[int(split(k[w], indices) * rand()) + 1]]
- # insert subject into answer
- gsub("_", subj, answer)
- }
- }
- }
- cost += length(answer) # for later payment : 1 cent per character
- return answer
-}
-function SetUpEliza() {
- srand()
- wold = "-"
- subjold = " "
-
- # table for conjugation
- conj[" ARE " ] = " AM "
- conj["WERE " ] = "WAS "
- conj[" YOU " ] = " I "
- conj["YOUR " ] = "MY "
- conj[" IVE " ] =\
- conj[" I HAVE " ] = " YOU HAVE "
- conj[" YOUVE " ] =\
- conj[" YOU HAVE "] = " I HAVE "
- conj[" IM " ] =\
- conj[" I AM " ] = " YOU ARE "
- conj[" YOURE " ] =\
- conj[" YOU ARE " ] = " I AM "
-
- # table of all answers
- r[1] = "DONT YOU BELIEVE THAT I CAN _"
- r[2] = "PERHAPS YOU WOULD LIKE TO BE ABLE TO _ ?"
- r[3] = "YOU WANT ME TO BE ABLE TO _ ?"
- r[4] = "PERHAPS YOU DONT WANT TO _ "
- r[5] = "DO YOU WANT TO BE ABLE TO _ ?"
- r[6] = "WHAT MAKES YOU THINK I AM _ ?"
- r[7] = "DOES IT PLEASE YOU TO BELIEVE I AM _ ?"
- r[8] = "PERHAPS YOU WOULD LIKE TO BE _ ?"
- r[9] = "DO YOU SOMETIMES WISH YOU WERE _ ?"
- r[10] = "DONT YOU REALLY _ ?"
- r[11] = "WHY DONT YOU _ ?"
- r[12] = "DO YOU WISH TO BE ABLE TO _ ?"
- r[13] = "DOES THAT TROUBLE YOU ?"
- r[14] = "TELL ME MORE ABOUT SUCH FEELINGS"
- r[15] = "DO YOU OFTEN FEEL _ ?"
- r[16] = "DO YOU ENJOY FEELING _ ?"
- r[17] = "DO YOU REALLY BELIEVE I DONT _ ?"
- r[18] = "PERHAPS IN GOOD TIME I WILL _ "
- r[19] = "DO YOU WANT ME TO _ ?"
- r[20] = "DO YOU THINK YOU SHOULD BE ABLE TO _ ?"
- r[21] = "WHY CANT YOU _ ?"
- r[22] = "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM _ ?"
- r[23] = "WOULD YOU PREFER IF I WERE NOT _ ?"
- r[24] = "PERHAPS IN YOUR FANTASIES I AM _ "
- r[25] = "HOW DO YOU KNOW YOU CANT _ ?"
- r[26] = "HAVE YOU TRIED ?"
- r[27] = "PERHAPS YOU CAN NOW _ "
- r[28] = "DID YOU COME TO ME BECAUSE YOU ARE _ ?"
- r[29] = "HOW LONG HAVE YOU BEEN _ ?"
- r[30] = "DO YOU BELIEVE ITS NORMAL TO BE _ ?"
- r[31] = "DO YOU ENJOY BEING _ ?"
- r[32] = "WE WERE DISCUSSING YOU -- NOT ME"
- r[33] = "Oh, I _"
- r[34] = "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU ?"
- r[35] = "WHAT WOULD IT MEAN TO YOU, IF YOU GOT _ ?"
- r[36] = "WHY DO YOU WANT _ ?"
- r[37] = "SUPPOSE YOU SOON GOT _"
- r[38] = "WHAT IF YOU NEVER GOT _ ?"
- r[39] = "I SOMETIMES ALSO WANT _"
- r[40] = "WHY DO YOU ASK ?"
- r[41] = "DOES THAT QUESTION INTEREST YOU ?"
- r[42] = "WHAT ANSWER WOULD PLEASE YOU THE MOST ?"
- r[43] = "WHAT DO YOU THINK ?"
- r[44] = "ARE SUCH QUESTIONS IN YOUR MIND OFTEN ?"
- r[45] = "WHAT IS IT THAT YOU REALLY WANT TO KNOW ?"
- r[46] = "HAVE YOU ASKED ANYONE ELSE ?"
- r[47] = "HAVE YOU ASKED SUCH QUESTIONS BEFORE ?"
- r[48] = "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT ?"
- r[49] = "NAMES DON'T INTEREST ME"
- r[50] = "I DONT CARE ABOUT NAMES -- PLEASE GO ON"
- r[51] = "IS THAT THE REAL REASON ?"
- r[52] = "DONT ANY OTHER REASONS COME TO MIND ?"
- r[53] = "DOES THAT REASON EXPLAIN ANYTHING ELSE ?"
- r[54] = "WHAT OTHER REASONS MIGHT THERE BE ?"
- r[55] = "PLEASE DON'T APOLOGIZE !"
- r[56] = "APOLOGIES ARE NOT NECESSARY"
- r[57] = "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE ?"
- r[58] = "DON'T BE SO DEFENSIVE"
- r[59] = "WHAT DOES THAT DREAM SUGGEST TO YOU ?"
- r[60] = "DO YOU DREAM OFTEN ?"
- r[61] = "WHAT PERSONS APPEAR IN YOUR DREAMS ?"
- r[62] = "ARE YOU DISTURBED BY YOUR DREAMS ?"
- r[63] = "HOW DO YOU DO ... PLEASE STATE YOUR PROBLEM"
- r[64] = "YOU DON'T SEEM QUITE CERTAIN"
- r[65] = "WHY THE UNCERTAIN TONE ?"
- r[66] = "CAN'T YOU BE MORE POSITIVE ?"
- r[67] = "YOU AREN'T SURE ?"
- r[68] = "DON'T YOU KNOW ?"
- r[69] = "WHY NO _ ?"
- r[70] = "DON'T SAY NO, IT'S ALWAYS SO NEGATIVE"
- r[71] = "WHY NOT ?"
- r[72] = "ARE YOU SURE ?"
- r[73] = "WHY NO ?"
- r[74] = "WHY ARE YOU CONCERNED ABOUT MY _ ?"
- r[75] = "WHAT ABOUT YOUR OWN _ ?"
- r[76] = "CAN'T YOU THINK ABOUT A SPECIFIC EXAMPLE ?"
- r[77] = "WHEN ?"
- r[78] = "WHAT ARE YOU THINKING OF ?"
- r[79] = "REALLY, ALWAYS ?"
- r[80] = "DO YOU REALLY THINK SO ?"
- r[81] = "BUT YOU ARE NOT SURE YOU _ "
- r[82] = "DO YOU DOUBT YOU _ ?"
- r[83] = "IN WHAT WAY ?"
- r[84] = "WHAT RESEMBLANCE DO YOU SEE ?"
- r[85] = "WHAT DOES THE SIMILARITY SUGGEST TO YOU ?"
- r[86] = "WHAT OTHER CONNECTION DO YOU SEE ?"
- r[87] = "COULD THERE REALLY BE SOME CONNECTIONS ?"
- r[88] = "HOW ?"
- r[89] = "YOU SEEM QUITE POSITIVE"
- r[90] = "ARE YOU SURE ?"
- r[91] = "I SEE"
- r[92] = "I UNDERSTAND"
- r[93] = "WHY DO YOU BRING UP THE TOPIC OF FRIENDS ?"
- r[94] = "DO YOUR FRIENDS WORRY YOU ?"
- r[95] = "DO YOUR FRIENDS PICK ON YOU ?"
- r[96] = "ARE YOU SURE YOU HAVE ANY FRIENDS ?"
- r[97] = "DO YOU IMPOSE ON YOUR FRIENDS ?"
- r[98] = "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU"
- r[99] = "DO COMPUTERS WORRY YOU ?"
- r[100] = "ARE YOU TALKING ABOUT ME IN PARTICULAR ?"
- r[101] = "ARE YOU FRIGHTENED BY MACHINES ?"
- r[102] = "WHY DO YOU MENTION COMPUTERS ?"
- r[103] = "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEMS ?"
- r[104] = "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE ?"
- r[105] = "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU ?"
- r[106] = "SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS ?"
- r[107] = "WHAT DOES THAT SUGGEST TO YOU ?"
- r[108] = "I SEE"
- r[109] = "IM NOT SURE I UNDERSTAND YOU FULLY"
- r[110] = "COME COME ELUCIDATE YOUR THOUGHTS"
- r[111] = "CAN YOU ELABORATE ON THAT ?"
- r[112] = "THAT IS QUITE INTERESTING"
- r[113] = "WHY DO YOU HAVE PROBLEMS WITH MONEY ?"
- r[114] = "DO YOU THINK MONEY IS EVERYTHING ?"
- r[115] = "ARE YOU SURE THAT MONEY IS THE PROBLEM ?"
- r[116] = "I THINK WE WANT TO TALK ABOUT YOU, NOT ABOUT ME"
- r[117] = "WHAT'S ABOUT ME ?"
- r[118] = "WHY DO YOU ALWAYS BRING UP MY NAME ?"
- # table for looking up answers that
- # fit to a certain keyword
- k["CAN YOU"] = "1 2 3"
- k["CAN I"] = "4 5"
- k["YOU ARE"] =\
- k["YOURE"] = "6 7 8 9"
- k["I DONT"] = "10 11 12 13"
- k["I FEEL"] = "14 15 16"
- k["WHY DONT YOU"] = "17 18 19"
- k["WHY CANT I"] = "20 21"
- k["ARE YOU"] = "22 23 24"
- k["I CANT"] = "25 26 27"
- k["I AM"] =\
- k["IM "] = "28 29 30 31"
- k["YOU "] = "32 33 34"
- k["I WANT"] = "35 36 37 38 39"
- k["WHAT"] =\
- k["HOW"] =\
- k["WHO"] =\
- k["WHERE"] =\
- k["WHEN"] =\
- k["WHY"] = "40 41 42 43 44 45 46 47 48"
- k["NAME"] = "49 50"
- k["CAUSE"] = "51 52 53 54"
- k["SORRY"] = "55 56 57 58"
- k["DREAM"] = "59 60 61 62"
- k["HELLO"] =\
- k["HI "] = "63"
- k["MAYBE"] = "64 65 66 67 68"
- k[" NO "] = "69 70 71 72 73"
- k["YOUR"] = "74 75"
- k["ALWAYS"] = "76 77 78 79"
- k["THINK"] = "80 81 82"
- k["LIKE"] = "83 84 85 86 87 88 89"
- k["YES"] = "90 91 92"
- k["FRIEND"] = "93 94 95 96 97 98"
- k["COMPUTER"] = "99 100 101 102 103 104 105"
- k["-"] = "106 107 108 109 110 111 112"
- k["MONEY"] = "113 114 115"
- k["ELIZA"] = "116 117 118"
-}
OpenPOWER on IntegriCloud