//-------------------------------------------------------------------- // Copyright (c) 2001, CrossWire Bible Society //-------------------------------------------------------------------- // BGREEK-Greek bgreek { Rule { // ============================================== // Variables, used to make the rules more comprehensible // and for conditionals. // ============================================== "$letter=[a-zA-Z];" "$quote='\"';" // Greek Letters "$ALPHA=\u0391;" "$BETA=\u0392;" "$GAMMA=\u0393;" "$DELTA=\u0394;" "$EPSILON=\u0395;" "$ZETA=\u0396;" "$ETA=\u0397;" "$THETA=\u0398;" "$IOTA=\u0399;" "$KAPPA=\u039A;" "$LAMBDA=\u039B;" "$MU=\u039C;" "$NU=\u039D;" "$XI=\u039E;" "$OMICRON=\u039F;" "$PI=\u03A0;" "$RHO=\u03A1;" "$SIGMA=\u03A3;" "$TAU=\u03A4;" "$YPSILON=\u03A5;" "$PHI=\u03A6;" "$CHI=\u03A7;" "$PSI=\u03A8;" "$OMEGA=\u03A9;" "$ALPHA2=\u0386;" "$EPSILON2=\u0388;" "$ETA2=\u0389;" "$IOTA2=\u038A;" "$OMICRON2=\u038C;" "$YPSILON2=\u038E;" "$OMEGA2=\u038F;" "$IOTA_DIAERESIS=\u03AA;" "$YPSILON_DIAERESIS=\u03AB;" "$alpha=\u03B1;" "$beta=\u03B2;" "$gamma=\u03B3;" "$delta=\u03B4;" "$epsilon=\u03B5;" "$zeta=\u03B6;" "$eta=\u03B7;" "$theta=\u03B8;" "$iota=\u03B9;" "$kappa=\u03BA;" "$lambda=\u03BB;" "$mu=\u03BC;" "$nu=\u03BD;" "$xi=\u03BE;" "$omicron=\u03BF;" "$pi=\u03C0;" "$rho=\u03C1;" "$sigma=\u03C3;" "$tau=\u03C4;" "$ypsilon=\u03C5;" "$phi=\u03C6;" "$chi=\u03C7;" "$psi=\u03C8;" "$omega=\u03C9;" //forms "$alpha2=\u03AC;" "$epsilon2=\u03AD;" "$eta2=\u03AE;" "$iota2=\u03AF;" "$omicron2=\u03CC;" "$ypsilon2=\u03CD;" "$omega2=\u03CE;" "$iota_diaeresis=\u03CA;" "$ypsilon_diaeresis=\u03CB;" "$iota_diaeresis2=\u0390;" "$ypsilon_diaeresis2=\u03B0;" "$sigma2=\u03C2;" "$iota_subscript=\u037A;" "$comb_rough_breathing=\u0314;" "$rough_breathing=\u02BD;" // Variables for conditional mappings // ============================================== // Rules // ============================================== // The following are special titlecases, and should // not be copied when duplicating the lowercase // ============================================== // Because there is no uppercase forms for final sigma, // we had to move all the sigma rules up here. // Remember to insert ' to preserve round trip, for double letters // don't need to do this for the digraphs with h, // since it is not created when mapping back from greek // use special form for s "S}$letter>$sigma2;" "S <> $SIGMA;" // The following are a bit tricky. 's' takes two forms in greek // final or non final. // We use ~s to represent the abnormal form: final before letter // or non-final before non-letter. // We use 's to separate p and s (otherwise ps is one letter) // so, we break out the following forms: "S < $sigma;" "S < $sigma2;" // because there are no uppercase forms, had to move these up too. "I<$iota_diaeresis2;" "U<$ypsilon_diaeresis2;" // ============================================== // Uppercase Forms. // To make lowercase forms, just copy and lowercase below // ============================================== // Basic Letters "A<>$ALPHA;" "A<$ALPHA2;" "B<>$BETA;" "G<>$GAMMA;" "D<>$DELTA;" "E<>$EPSILON;" "E<$EPSILON2;" "Z<>$ZETA;" "H<$ETA2;" "H<>$ETA;" "Q<>$THETA;" "I<>$IOTA;" "I<$IOTA2;" "I<$IOTA_DIAERESIS;" "K<>$KAPPA;" "L<>$LAMBDA;" "M<>$MU;" "N<>$NU;" "X<>$XI;" "O<>$OMICRON;" "O<$OMICRON2;" "F<>$PHI;" // needs ordering before P "Y<>$PSI;" // needs ordering before P "P<>$PI;" "R<>$RHO;" "T<>$TAU;" "U<>$YPSILON;" "U<$YPSILON2;" "U<$YPSILON_DIAERESIS;" "C<>$CHI;" "W<$OMEGA2;" "W<>$OMEGA;" // Non-letter characters "i<>$iota_subscript;" "h<>$comb_rough_breathing;" "h<$rough_breathing;" // Extra English Letters. Mapped for completeness "J>I;" "V>U;" // ============================================== // Lowercase Forms. Just copy above and lowercase // ============================================== // basic letters "a>$ALPHA;" "b>$BETA;" "g>$GAMMA;" "d>$DELTA;" "e>$EPSILON;" "z>$ZETA;" "q>$THETA;" "k>$KAPPA;" "l>$LAMBDA;" "m>$MU;" "n>$NU;" "x>$XI;" "o>$OMICRON;" "f>$PHI;" "y>$PSI;" "p>$PI;" "r>$RHO;" "t>$TAU;" "u>$YPSILON;" "c>$CHI;" "w>$OMEGA;" // Extra English Letters. Mapped for completeness "j>I;" "v>U;" } }