Annotation of researchv10no/cmd/ipa/ipa_trans.lex, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.