4501
|
1 |
#
|
|
2 |
# $Id$
|
|
3 |
#
|
|
4 |
# feeder.pl - feed isabelle session
|
|
5 |
#
|
|
6 |
|
|
7 |
# args
|
|
8 |
|
4504
|
9 |
($head, $emitpid, $quit, $symbols, $tail) = @ARGV;
|
4501
|
10 |
|
|
11 |
|
|
12 |
# symbols translation table
|
|
13 |
|
|
14 |
%tab = (
|
|
15 |
#GENERATED TEXT FOLLOWS - Do not edit!
|
|
16 |
"\xa0", "\\<space2>",
|
|
17 |
"\xa1", "\\<Gamma>",
|
|
18 |
"\xa2", "\\<Delta>",
|
|
19 |
"\xa3", "\\<Theta>",
|
|
20 |
"\xa4", "\\<Lambda>",
|
|
21 |
"\xa5", "\\<Pi>",
|
|
22 |
"\xa6", "\\<Sigma>",
|
|
23 |
"\xa7", "\\<Phi>",
|
|
24 |
"\xa8", "\\<Psi>",
|
|
25 |
"\xa9", "\\<Omega>",
|
|
26 |
"\xaa", "\\<alpha>",
|
|
27 |
"\xab", "\\<beta>",
|
|
28 |
"\xac", "\\<gamma>",
|
|
29 |
"\xad", "\\<delta>",
|
|
30 |
"\xae", "\\<epsilon>",
|
|
31 |
"\xaf", "\\<zeta>",
|
|
32 |
"\xb0", "\\<eta>",
|
|
33 |
"\xb1", "\\<theta>",
|
|
34 |
"\xb2", "\\<kappa>",
|
|
35 |
"\xb3", "\\<lambda>",
|
|
36 |
"\xb4", "\\<mu>",
|
|
37 |
"\xb5", "\\<nu>",
|
|
38 |
"\xb6", "\\<xi>",
|
|
39 |
"\xb7", "\\<pi>",
|
|
40 |
"\xb8", "\\<rho>",
|
|
41 |
"\xb9", "\\<sigma>",
|
|
42 |
"\xba", "\\<tau>",
|
|
43 |
"\xbb", "\\<phi>",
|
|
44 |
"\xbc", "\\<chi>",
|
|
45 |
"\xbd", "\\<psi>",
|
|
46 |
"\xbe", "\\<omega>",
|
|
47 |
"\xbf", "\\<not>",
|
|
48 |
"\xc0", "\\<and>",
|
|
49 |
"\xc1", "\\<or>",
|
|
50 |
"\xc2", "\\<forall>",
|
|
51 |
"\xc3", "\\<exists>",
|
|
52 |
"\xc4", "\\<And>",
|
|
53 |
"\xc5", "\\<lceil>",
|
|
54 |
"\xc6", "\\<rceil>",
|
|
55 |
"\xc7", "\\<lfloor>",
|
|
56 |
"\xc8", "\\<rfloor>",
|
|
57 |
"\xc9", "\\<turnstile>",
|
|
58 |
"\xca", "\\<Turnstile>",
|
|
59 |
"\xcb", "\\<lbrakk>",
|
|
60 |
"\xcc", "\\<rbrakk>",
|
|
61 |
"\xcd", "\\<cdot>",
|
|
62 |
"\xce", "\\<in>",
|
|
63 |
"\xcf", "\\<subseteq>",
|
|
64 |
"\xd0", "\\<inter>",
|
|
65 |
"\xd1", "\\<union>",
|
|
66 |
"\xd2", "\\<Inter>",
|
|
67 |
"\xd3", "\\<Union>",
|
|
68 |
"\xd4", "\\<sqinter>",
|
|
69 |
"\xd5", "\\<squnion>",
|
|
70 |
"\xd6", "\\<Sqinter>",
|
|
71 |
"\xd7", "\\<Squnion>",
|
|
72 |
"\xd8", "\\<bottom>",
|
|
73 |
"\xd9", "\\<doteq>",
|
|
74 |
"\xda", "\\<equiv>",
|
|
75 |
"\xdb", "\\<noteq>",
|
|
76 |
"\xdc", "\\<sqsubset>",
|
|
77 |
"\xdd", "\\<sqsubseteq>",
|
|
78 |
"\xde", "\\<prec>",
|
|
79 |
"\xdf", "\\<preceq>",
|
|
80 |
"\xe0", "\\<succ>",
|
|
81 |
"\xe1", "\\<approx>",
|
|
82 |
"\xe2", "\\<sim>",
|
|
83 |
"\xe3", "\\<simeq>",
|
|
84 |
"\xe4", "\\<le>",
|
|
85 |
"\xe5", "\\<Colon>",
|
|
86 |
"\xe6", "\\<leftarrow>",
|
|
87 |
"\xe7", "\\<midarrow>",
|
|
88 |
"\xe8", "\\<rightarrow>",
|
|
89 |
"\xe9", "\\<Leftarrow>",
|
|
90 |
"\xea", "\\<Midarrow>",
|
|
91 |
"\xeb", "\\<Rightarrow>",
|
|
92 |
"\xec", "\\<bow>",
|
|
93 |
"\xed", "\\<mapsto>",
|
|
94 |
"\xee", "\\<leadsto>",
|
|
95 |
"\xef", "\\<up>",
|
|
96 |
"\xf0", "\\<down>",
|
|
97 |
"\xf1", "\\<notin>",
|
|
98 |
"\xf2", "\\<times>",
|
|
99 |
"\xf3", "\\<oplus>",
|
|
100 |
"\xf4", "\\<ominus>",
|
|
101 |
"\xf5", "\\<otimes>",
|
|
102 |
"\xf6", "\\<oslash>",
|
|
103 |
"\xf7", "\\<subset>",
|
|
104 |
"\xf8", "\\<infinity>",
|
|
105 |
"\xf9", "\\<box>",
|
|
106 |
"\xfa", "\\<diamond>",
|
|
107 |
"\xfb", "\\<circ>",
|
|
108 |
"\xfc", "\\<bullet>",
|
|
109 |
"\xfd", "\\<parallel>",
|
|
110 |
"\xfe", "\\<surd>",
|
|
111 |
"\xff", "\\<copyright>"
|
|
112 |
#END OF GENERATED TEXT
|
|
113 |
);
|
|
114 |
|
|
115 |
|
4504
|
116 |
# setup signal handlers
|
4501
|
117 |
|
4504
|
118 |
sub hangup { exit(0); }
|
4501
|
119 |
$SIG{'HUP'} = "hangup";
|
4504
|
120 |
$SIG{'INT'} = "IGNORE";
|
4501
|
121 |
|
|
122 |
|
|
123 |
# main
|
|
124 |
|
|
125 |
#buffer lines
|
|
126 |
$| = 1;
|
|
127 |
|
|
128 |
|
|
129 |
$emitpid && (print $$, "\n");
|
|
130 |
|
|
131 |
$head && (print "$head", "\n");
|
|
132 |
|
|
133 |
if (!$quit) {
|
|
134 |
while (<STDIN>) {
|
|
135 |
$symbols && (s/([\xa1-\xff])/\\$tab{$1}/g);
|
|
136 |
print;
|
|
137 |
}
|
|
138 |
}
|
|
139 |
|
|
140 |
$tail && (print "$tail", "\n");
|
|
141 |
|
|
142 |
|
4504
|
143 |
# wait forever
|
4501
|
144 |
|
|
145 |
close STDOUT;
|
|
146 |
sleep;
|