1*e1fe3e4aSElliott Hughes# Glyph classes 2*e1fe3e4aSElliott Hughes@dnom = [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom]; 3*e1fe3e4aSElliott Hughes@numerals = [zero one two three four five six seven eight nine]; 4*e1fe3e4aSElliott Hughes@numr = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr]; 5*e1fe3e4aSElliott Hughes@slash = [slash fraction]; 6*e1fe3e4aSElliott Hughes 7*e1fe3e4aSElliott Hughes# Mark classes 8*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.1.10; 9*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.2.10; 10*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.3.10; 11*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.4.10; 12*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.5.10; 13*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.6.10; 14*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.7.10; 15*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.8.10; 16*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @INIT.9.10; 17*e1fe3e4aSElliott HughesmarkClass eight.numr <anchor 0 0> @NUMRNUMR; 18*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.1.10; 19*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.2.10; 20*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.3.10; 21*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.4.10; 22*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.5.10; 23*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.6.10; 24*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.7.10; 25*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.8.10; 26*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @INIT.9.10; 27*e1fe3e4aSElliott HughesmarkClass five.numr <anchor 0 0> @NUMRNUMR; 28*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.1.10; 29*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.2.10; 30*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.3.10; 31*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.4.10; 32*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.5.10; 33*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.6.10; 34*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.7.10; 35*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.8.10; 36*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @INIT.9.10; 37*e1fe3e4aSElliott HughesmarkClass four.numr <anchor 0 0> @NUMRNUMR; 38*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.1.10; 39*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.2.10; 40*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.3.10; 41*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.4.10; 42*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.5.10; 43*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.6.10; 44*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.7.10; 45*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.8.10; 46*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @INIT.9.10; 47*e1fe3e4aSElliott HughesmarkClass nine.numr <anchor 0 0> @NUMRNUMR; 48*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.1.10; 49*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.2.10; 50*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.3.10; 51*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.4.10; 52*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.5.10; 53*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.6.10; 54*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.7.10; 55*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.8.10; 56*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @INIT.9.10; 57*e1fe3e4aSElliott HughesmarkClass one.numr <anchor 0 0> @NUMRNUMR; 58*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.1.10; 59*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.2.10; 60*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.3.10; 61*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.4.10; 62*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.5.10; 63*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.6.10; 64*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.7.10; 65*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.8.10; 66*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @INIT.9.10; 67*e1fe3e4aSElliott HughesmarkClass seven.numr <anchor 0 0> @NUMRNUMR; 68*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.1.10; 69*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.2.10; 70*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.3.10; 71*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.4.10; 72*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.5.10; 73*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.6.10; 74*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.7.10; 75*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.8.10; 76*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @INIT.9.10; 77*e1fe3e4aSElliott HughesmarkClass six.numr <anchor 0 0> @NUMRNUMR; 78*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.1.10; 79*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.2.10; 80*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.3.10; 81*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.4.10; 82*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.5.10; 83*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.6.10; 84*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.7.10; 85*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.8.10; 86*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @INIT.9.10; 87*e1fe3e4aSElliott HughesmarkClass three.numr <anchor 0 0> @NUMRNUMR; 88*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.1.10; 89*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.2.10; 90*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.3.10; 91*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.4.10; 92*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.5.10; 93*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.6.10; 94*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.7.10; 95*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.8.10; 96*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @INIT.9.10; 97*e1fe3e4aSElliott HughesmarkClass two.numr <anchor 0 0> @NUMRNUMR; 98*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.1.10; 99*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.2.10; 100*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.3.10; 101*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.4.10; 102*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.5.10; 103*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.6.10; 104*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.7.10; 105*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.8.10; 106*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @INIT.9.10; 107*e1fe3e4aSElliott HughesmarkClass zero.numr <anchor 0 0> @NUMRNUMR; 108*e1fe3e4aSElliott Hughes 109*e1fe3e4aSElliott Hughes# Lookups 110*e1fe3e4aSElliott Hugheslookup frac.numr { 111*e1fe3e4aSElliott Hughes sub @numerals by @numr; 112*e1fe3e4aSElliott Hughes} frac.numr; 113*e1fe3e4aSElliott Hughes 114*e1fe3e4aSElliott Hugheslookup frac.dnom { 115*e1fe3e4aSElliott Hughes sub [@slash @dnom] @numr' by @dnom; 116*e1fe3e4aSElliott Hughes} frac.dnom; 117*e1fe3e4aSElliott Hughes 118*e1fe3e4aSElliott Hugheslookup frac.noslash { 119*e1fe3e4aSElliott Hughes sub @numr slash by @numr; 120*e1fe3e4aSElliott Hughes sub @numr fraction by @numr; 121*e1fe3e4aSElliott Hughes} frac.noslash; 122*e1fe3e4aSElliott Hughes 123*e1fe3e4aSElliott Hugheslookup frac.fracinit { 124*e1fe3e4aSElliott Hughes ignore sub @numr @numr'; 125*e1fe3e4aSElliott Hughes sub @numr' by fracinit @numr; 126*e1fe3e4aSElliott Hughes} frac.fracinit; 127*e1fe3e4aSElliott Hughes 128*e1fe3e4aSElliott Hugheslookup kern.numeral_to_fraction { 129*e1fe3e4aSElliott Hughes enum pos @numerals fracinit 140; 130*e1fe3e4aSElliott Hughes pos @dnom @numerals 140; 131*e1fe3e4aSElliott Hughes} kern.numeral_to_fraction; 132*e1fe3e4aSElliott Hughes 133*e1fe3e4aSElliott Hugheslookup fracmark.init_1.10_target { 134*e1fe3e4aSElliott Hughes pos base fracinit 135*e1fe3e4aSElliott Hughes <anchor 3150 0> mark @INIT.1.10; 136*e1fe3e4aSElliott Hughes} fracmark.init_1.10_target; 137*e1fe3e4aSElliott Hughes 138*e1fe3e4aSElliott Hugheslookup fracmark.init_2.10_target { 139*e1fe3e4aSElliott Hughes pos base fracinit 140*e1fe3e4aSElliott Hughes <anchor 2800 0> mark @INIT.2.10; 141*e1fe3e4aSElliott Hughes} fracmark.init_2.10_target; 142*e1fe3e4aSElliott Hughes 143*e1fe3e4aSElliott Hugheslookup fracmark.init_3.10_target { 144*e1fe3e4aSElliott Hughes pos base fracinit 145*e1fe3e4aSElliott Hughes <anchor 2450 0> mark @INIT.3.10; 146*e1fe3e4aSElliott Hughes} fracmark.init_3.10_target; 147*e1fe3e4aSElliott Hughes 148*e1fe3e4aSElliott Hugheslookup fracmark.init_4.10_target { 149*e1fe3e4aSElliott Hughes pos base fracinit 150*e1fe3e4aSElliott Hughes <anchor 2100 0> mark @INIT.4.10; 151*e1fe3e4aSElliott Hughes} fracmark.init_4.10_target; 152*e1fe3e4aSElliott Hughes 153*e1fe3e4aSElliott Hugheslookup fracmark.init_5.10_target { 154*e1fe3e4aSElliott Hughes pos base fracinit 155*e1fe3e4aSElliott Hughes <anchor 1750 0> mark @INIT.5.10; 156*e1fe3e4aSElliott Hughes} fracmark.init_5.10_target; 157*e1fe3e4aSElliott Hughes 158*e1fe3e4aSElliott Hugheslookup fracmark.init_6.10_target { 159*e1fe3e4aSElliott Hughes pos base fracinit 160*e1fe3e4aSElliott Hughes <anchor 1400 0> mark @INIT.6.10; 161*e1fe3e4aSElliott Hughes} fracmark.init_6.10_target; 162*e1fe3e4aSElliott Hughes 163*e1fe3e4aSElliott Hugheslookup fracmark.init_7.10_target { 164*e1fe3e4aSElliott Hughes pos base fracinit 165*e1fe3e4aSElliott Hughes <anchor 1050 0> mark @INIT.7.10; 166*e1fe3e4aSElliott Hughes} fracmark.init_7.10_target; 167*e1fe3e4aSElliott Hughes 168*e1fe3e4aSElliott Hugheslookup fracmark.init_8.10_target { 169*e1fe3e4aSElliott Hughes pos base fracinit 170*e1fe3e4aSElliott Hughes <anchor 700 0> mark @INIT.8.10; 171*e1fe3e4aSElliott Hughes} fracmark.init_8.10_target; 172*e1fe3e4aSElliott Hughes 173*e1fe3e4aSElliott Hugheslookup fracmark.init_9.10_target { 174*e1fe3e4aSElliott Hughes pos base fracinit 175*e1fe3e4aSElliott Hughes <anchor 350 0> mark @INIT.9.10; 176*e1fe3e4aSElliott Hughes} fracmark.init_9.10_target; 177*e1fe3e4aSElliott Hughes 178*e1fe3e4aSElliott Hugheslookup fracmark.init { 179*e1fe3e4aSElliott Hughes # fracmark.init\1.10 180*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_1.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 181*e1fe3e4aSElliott Hughes subtable; 182*e1fe3e4aSElliott Hughes # fracmark.init\2.10 183*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_2.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 184*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_2.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 185*e1fe3e4aSElliott Hughes subtable; 186*e1fe3e4aSElliott Hughes # fracmark.init\3.10 187*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_3.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 188*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_3.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 189*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_3.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 190*e1fe3e4aSElliott Hughes subtable; 191*e1fe3e4aSElliott Hughes # fracmark.init\4.10 192*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_4.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 193*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_4.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 194*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_4.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 195*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_4.10_target @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 196*e1fe3e4aSElliott Hughes subtable; 197*e1fe3e4aSElliott Hughes # fracmark.init\5.10 198*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 199*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 200*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_5.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 201*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_5.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 202*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_5.10_target @dnom @dnom @dnom @dnom @dnom @dnom; 203*e1fe3e4aSElliott Hughes subtable; 204*e1fe3e4aSElliott Hughes # fracmark.init\6.10 205*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 206*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 207*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 208*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_6.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 209*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_6.10_target @numr @dnom @dnom @dnom @dnom @dnom @dnom; 210*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_6.10_target @dnom @dnom @dnom @dnom @dnom; 211*e1fe3e4aSElliott Hughes subtable; 212*e1fe3e4aSElliott Hughes # fracmark.init\7.10 213*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 214*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 215*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 216*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 217*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_7.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom; 218*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_7.10_target @numr @dnom @dnom @dnom @dnom @dnom; 219*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_7.10_target @dnom @dnom @dnom @dnom; 220*e1fe3e4aSElliott Hughes subtable; 221*e1fe3e4aSElliott Hughes # fracmark.init\8.10 222*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 223*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 224*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 225*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 226*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom; 227*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_8.10_target @numr @numr @dnom @dnom @dnom @dnom @dnom; 228*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_8.10_target @numr @dnom @dnom @dnom @dnom; 229*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_8.10_target @dnom @dnom @dnom; 230*e1fe3e4aSElliott Hughes subtable; 231*e1fe3e4aSElliott Hughes # fracmark.init\9.10 232*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 233*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 234*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 235*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom @dnom; 236*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @numr @dnom @dnom @dnom @dnom @dnom @dnom; 237*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @numr @dnom @dnom @dnom @dnom @dnom; 238*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @numr @numr @dnom @dnom @dnom @dnom; 239*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @numr @dnom @dnom @dnom; 240*e1fe3e4aSElliott Hughes pos [@numr]' lookup fracmark.init_9.10_target @dnom @dnom; 241*e1fe3e4aSElliott Hughes} fracmark.init; 242*e1fe3e4aSElliott Hughes 243*e1fe3e4aSElliott Hugheslookup fracmkmk.numrspacing { 244*e1fe3e4aSElliott Hughes pos mark zero.numr 245*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 246*e1fe3e4aSElliott Hughes pos mark one.numr 247*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 248*e1fe3e4aSElliott Hughes pos mark two.numr 249*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 250*e1fe3e4aSElliott Hughes pos mark three.numr 251*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 252*e1fe3e4aSElliott Hughes pos mark four.numr 253*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 254*e1fe3e4aSElliott Hughes pos mark five.numr 255*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 256*e1fe3e4aSElliott Hughes pos mark six.numr 257*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 258*e1fe3e4aSElliott Hughes pos mark seven.numr 259*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 260*e1fe3e4aSElliott Hughes pos mark eight.numr 261*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 262*e1fe3e4aSElliott Hughes pos mark nine.numr 263*e1fe3e4aSElliott Hughes <anchor 700 0> mark @NUMRNUMR; 264*e1fe3e4aSElliott Hughes} fracmkmk.numrspacing; 265*e1fe3e4aSElliott Hughes 266*e1fe3e4aSElliott Hughes# Features 267*e1fe3e4aSElliott Hughesfeature afrc { 268*e1fe3e4aSElliott Hughes script DFLT; 269*e1fe3e4aSElliott Hughes language dflt; 270*e1fe3e4aSElliott Hughes lookup frac.numr; 271*e1fe3e4aSElliott Hughes lookup frac.dnom; 272*e1fe3e4aSElliott Hughes lookup frac.noslash; 273*e1fe3e4aSElliott Hughes lookup frac.fracinit; 274*e1fe3e4aSElliott Hughes script latn; 275*e1fe3e4aSElliott Hughes language dflt; 276*e1fe3e4aSElliott Hughes lookup frac.numr; 277*e1fe3e4aSElliott Hughes lookup frac.dnom; 278*e1fe3e4aSElliott Hughes lookup frac.noslash; 279*e1fe3e4aSElliott Hughes lookup frac.fracinit; 280*e1fe3e4aSElliott Hughes} afrc; 281*e1fe3e4aSElliott Hughes 282*e1fe3e4aSElliott Hughesfeature frac { 283*e1fe3e4aSElliott Hughes script DFLT; 284*e1fe3e4aSElliott Hughes language dflt; 285*e1fe3e4aSElliott Hughes lookup frac.numr; 286*e1fe3e4aSElliott Hughes lookup frac.dnom; 287*e1fe3e4aSElliott Hughes lookup frac.noslash; 288*e1fe3e4aSElliott Hughes lookup frac.fracinit; 289*e1fe3e4aSElliott Hughes script latn; 290*e1fe3e4aSElliott Hughes language dflt; 291*e1fe3e4aSElliott Hughes lookup frac.numr; 292*e1fe3e4aSElliott Hughes lookup frac.dnom; 293*e1fe3e4aSElliott Hughes lookup frac.noslash; 294*e1fe3e4aSElliott Hughes lookup frac.fracinit; 295*e1fe3e4aSElliott Hughes} frac; 296*e1fe3e4aSElliott Hughes 297*e1fe3e4aSElliott Hughesfeature kern { 298*e1fe3e4aSElliott Hughes script DFLT; 299*e1fe3e4aSElliott Hughes language dflt; 300*e1fe3e4aSElliott Hughes lookup kern.numeral_to_fraction; 301*e1fe3e4aSElliott Hughes script latn; 302*e1fe3e4aSElliott Hughes language dflt; 303*e1fe3e4aSElliott Hughes lookup kern.numeral_to_fraction; 304*e1fe3e4aSElliott Hughes} kern; 305*e1fe3e4aSElliott Hughes 306*e1fe3e4aSElliott Hughesfeature mark { 307*e1fe3e4aSElliott Hughes script DFLT; 308*e1fe3e4aSElliott Hughes language dflt; 309*e1fe3e4aSElliott Hughes lookup fracmark.init; 310*e1fe3e4aSElliott Hughes script latn; 311*e1fe3e4aSElliott Hughes language dflt; 312*e1fe3e4aSElliott Hughes lookup fracmark.init; 313*e1fe3e4aSElliott Hughes} mark; 314*e1fe3e4aSElliott Hughes 315*e1fe3e4aSElliott Hughesfeature mkmk { 316*e1fe3e4aSElliott Hughes script DFLT; 317*e1fe3e4aSElliott Hughes language dflt; 318*e1fe3e4aSElliott Hughes lookup fracmkmk.numrspacing; 319*e1fe3e4aSElliott Hughes script latn; 320*e1fe3e4aSElliott Hughes language dflt; 321*e1fe3e4aSElliott Hughes lookup fracmkmk.numrspacing; 322*e1fe3e4aSElliott Hughes} mkmk; 323*e1fe3e4aSElliott Hughes 324*e1fe3e4aSElliott Hughes@GDEF_base = [glyph0 \NULL CR space zero one two three four five six seven eight nine slash fraction fracinit zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom]; 325*e1fe3e4aSElliott Hughes@GDEF_mark = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr]; 326*e1fe3e4aSElliott Hughestable GDEF { 327*e1fe3e4aSElliott Hughes GlyphClassDef @GDEF_base, , @GDEF_mark, ; 328*e1fe3e4aSElliott Hughes} GDEF; 329