lib/scripts/feeder.pl
changeset 4501 5f629ee2502b
child 4504 2f39aa4bebf3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/scripts/feeder.pl	Mon Dec 29 21:39:22 1997 +0100
@@ -0,0 +1,151 @@
+#
+# $Id$
+#
+# feeder.pl - feed isabelle session
+#
+
+# args
+
+($head, $noint, $emitpid, $quit, $symbols, $tail) = @ARGV;
+
+
+# symbols translation table
+
+%tab = (
+#GENERATED TEXT FOLLOWS - Do not edit!
+  "\xa0", "\\<space2>",
+  "\xa1", "\\<Gamma>",
+  "\xa2", "\\<Delta>",
+  "\xa3", "\\<Theta>",
+  "\xa4", "\\<Lambda>",
+  "\xa5", "\\<Pi>",
+  "\xa6", "\\<Sigma>",
+  "\xa7", "\\<Phi>",
+  "\xa8", "\\<Psi>",
+  "\xa9", "\\<Omega>",
+  "\xaa", "\\<alpha>",
+  "\xab", "\\<beta>",
+  "\xac", "\\<gamma>",
+  "\xad", "\\<delta>",
+  "\xae", "\\<epsilon>",
+  "\xaf", "\\<zeta>",
+  "\xb0", "\\<eta>",
+  "\xb1", "\\<theta>",
+  "\xb2", "\\<kappa>",
+  "\xb3", "\\<lambda>",
+  "\xb4", "\\<mu>",
+  "\xb5", "\\<nu>",
+  "\xb6", "\\<xi>",
+  "\xb7", "\\<pi>",
+  "\xb8", "\\<rho>",
+  "\xb9", "\\<sigma>",
+  "\xba", "\\<tau>",
+  "\xbb", "\\<phi>",
+  "\xbc", "\\<chi>",
+  "\xbd", "\\<psi>",
+  "\xbe", "\\<omega>",
+  "\xbf", "\\<not>",
+  "\xc0", "\\<and>",
+  "\xc1", "\\<or>",
+  "\xc2", "\\<forall>",
+  "\xc3", "\\<exists>",
+  "\xc4", "\\<And>",
+  "\xc5", "\\<lceil>",
+  "\xc6", "\\<rceil>",
+  "\xc7", "\\<lfloor>",
+  "\xc8", "\\<rfloor>",
+  "\xc9", "\\<turnstile>",
+  "\xca", "\\<Turnstile>",
+  "\xcb", "\\<lbrakk>",
+  "\xcc", "\\<rbrakk>",
+  "\xcd", "\\<cdot>",
+  "\xce", "\\<in>",
+  "\xcf", "\\<subseteq>",
+  "\xd0", "\\<inter>",
+  "\xd1", "\\<union>",
+  "\xd2", "\\<Inter>",
+  "\xd3", "\\<Union>",
+  "\xd4", "\\<sqinter>",
+  "\xd5", "\\<squnion>",
+  "\xd6", "\\<Sqinter>",
+  "\xd7", "\\<Squnion>",
+  "\xd8", "\\<bottom>",
+  "\xd9", "\\<doteq>",
+  "\xda", "\\<equiv>",
+  "\xdb", "\\<noteq>",
+  "\xdc", "\\<sqsubset>",
+  "\xdd", "\\<sqsubseteq>",
+  "\xde", "\\<prec>",
+  "\xdf", "\\<preceq>",
+  "\xe0", "\\<succ>",
+  "\xe1", "\\<approx>",
+  "\xe2", "\\<sim>",
+  "\xe3", "\\<simeq>",
+  "\xe4", "\\<le>",
+  "\xe5", "\\<Colon>",
+  "\xe6", "\\<leftarrow>",
+  "\xe7", "\\<midarrow>",
+  "\xe8", "\\<rightarrow>",
+  "\xe9", "\\<Leftarrow>",
+  "\xea", "\\<Midarrow>",
+  "\xeb", "\\<Rightarrow>",
+  "\xec", "\\<bow>",
+  "\xed", "\\<mapsto>",
+  "\xee", "\\<leadsto>",
+  "\xef", "\\<up>",
+  "\xf0", "\\<down>",
+  "\xf1", "\\<notin>",
+  "\xf2", "\\<times>",
+  "\xf3", "\\<oplus>",
+  "\xf4", "\\<ominus>",
+  "\xf5", "\\<otimes>",
+  "\xf6", "\\<oslash>",
+  "\xf7", "\\<subset>",
+  "\xf8", "\\<infinity>",
+  "\xf9", "\\<box>",
+  "\xfa", "\\<diamond>",
+  "\xfb", "\\<circ>",
+  "\xfc", "\\<bullet>",
+  "\xfd", "\\<parallel>",
+  "\xfe", "\\<surd>",
+  "\xff", "\\<copyright>"
+#END OF GENERATED TEXT
+);
+
+
+# setup hangup handler
+
+sub hangup {
+    exit(0);
+}
+
+$SIG{'HUP'} = "hangup";
+
+
+# main
+
+#bulletproof session
+$noint && ($SIG{INT} = "IGNORE");
+
+#buffer lines
+$| = 1;
+
+
+$emitpid && (print $$, "\n");
+
+$head && (print "$head", "\n");
+
+if (!$quit) {
+    while (<STDIN>) {
+	$symbols && (s/([\xa1-\xff])/\\$tab{$1}/g);
+	print;
+    }
+}
+
+$tail && (print "$tail", "\n");
+
+
+# wait forever, expecting to be terminated by HUP
+
+close STDOUT;
+sleep;