|
|
1.1 root 1: %Start P1 P2 P3
2: %{
3: void ipa_out();
4: %}
5: %%
6: "@ipa(" { BEGIN P1; }
7: "@ipa{" { BEGIN P2; }
8: "@ipa/" { BEGIN P3; }
9: <P1>")" { BEGIN 0; }
10: <P2>"}" { BEGIN 0; }
11: <P3>"/" { BEGIN 0; }
12: <P1,P2,P3>"p" ipa_out(1,1);
13: <P1,P2,P3>"t" ipa_out(1,3);
14: <P1,P2,P3>"C" { ipa_out(1,3); ipa_out(1,66); }
15: <P1,P2,P3>"k" ipa_out(1,5);
16: <P1,P2,P3>"b" ipa_out(1,2);
17: <P1,P2,P3>"d" ipa_out(1,4);
18: <P1,P2,P3>"J" { ipa_out(1,4); ipa_out(1,67); }
19: <P1,P2,P3>"g" ipa_out(1,11);
20: <P1,P2,P3>"m" ipa_out(1,6);
21: <P1,P2,P3>"n" ipa_out(1,7);
22: <P1,P2,P3>"G" ipa_out(1,39);
23: <P1,P2,P3>"l" ipa_out(1,8);
24: <P1,P2,P3>"r" ipa_out(1,59);
25: <P1,P2,P3>"f" ipa_out(1,9);
26: <P1,P2,P3>"T" ipa_out(1,57);
27: <P1,P2,P3>"D" ipa_out(1,58);
28: <P1,P2,P3>"s" ipa_out(1,18);
29: <P1,P2,P3>"S" ipa_out(1,66);
30: <P1,P2,P3>"Z" ipa_out(1,67);
31: <P1,P2,P3>"v" ipa_out(1,19);
32: <P1,P2,P3>"z" ipa_out(1,22);
33: <P1,P2,P3>"w" ipa_out(1,20);
34: <P1,P2,P3>"y" ipa_out(1,99);
35: <P1,P2,P3>"h" ipa_out(1,10);
36: <P1,P2,P3>"?" ipa_out(1,35);
37: <P1,P2,P3>"Q" ipa_out(1,52);
38: <P1,P2,P3>"E" ipa_out(1,91);
39: <P1,P2,P3>"i" ipa_out(2,8);
40: <P1,P2,P3>"e" ipa_out(1,93);
41: <P1,P2,P3>"A" { ipa_out(1,92); ipa_out(2,71); }
42: <P1,P2,P3>"a" ipa_out(2,12);
43: <P1,P2,P3>"o" ipa_out(1,95);
44: <P1,P2,P3>"@" ipa_out(2,2);
45: <P1,P2,P3>"^" ipa_out(2,3);
46: <P1,P2,P3>"O" ipa_out(1,97);
47: <P1,P2,P3>"U" ipa_out(1,98);
48: <P1,P2,P3>"u" ipa_out(2,9);
49: <P1,P2,P3>"W" { ipa_out(1,94); ipa_out(2,73); }
50: <P1,P2,P3>"I" { ipa_out(1,94); ipa_out(2,71); }
51: <P1,P2,P3>"Y" { ipa_out(1,96); ipa_out(2,71); }
52: <P1,P2,P3>"R" ipa_out(2,77);
53: <P1,P2,P3>"%" ipa_out(2,99);
54: <P1,P2,P3>"c" ipa_out(1,96);
55: <P1,P2,P3>">" ipa_out(1,96);
56: <P1,P2,P3>"&" ipa_out(2,14);
57: <P1,P2,P3>"*" ipa_out(2,6);
58: <P1,P2,P3>"#" ECHO;
59: <P1,P2,P3>"+" ECHO;
60: <P1,P2,P3>"'" ipa_out(2,78);
61: <P1,P2,P3>"." ipa_out(2,79);
62: <P1,P2,P3>"N" ipa_out(2,76);
63: <P1,P2,P3>"L" ipa_out(2,74);
64: <P1,P2,P3>":" ipa_out(2,66);
65: <P1,P2,P3>"["[1-2]"."[0-9]+"]" {
66: /* any member of one of the two fonts */
67: ipa_out(atoi(&yytext[1]),atoi(&yytext[3]));
68: }
69: <P1,P2,P3>[ \n] ECHO;
70: <P1,P2,P3>. {
71: ipa_out(2,68); /* a slightly raised 'x'
72: for all characters not otherwise
73: defined */
74: }
75: . ECHO;
76: %%
77: void
78: ipa_out(fontnum,charnum)
79: int fontnum, charnum;
80: {
81: printf("\\f(P%d\\N'%d'\\fP",fontnum,charnum);
82: /* should check that charnum is in range */
83: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.