mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 13:09:33 -06:00
Some new languges by Harald, plus translation scripts
This commit is contained in:
50
grammars/numerals/old/af_tunni.gf
Normal file
50
grammars/numerals/old/af_tunni.gf
Normal file
@@ -0,0 +1,50 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param Size = sg | pl ;
|
||||
param DForm = unit | ten ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str ; size : Size } ;
|
||||
oper Form = {s : Str ; size : Size } ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = Form ;
|
||||
lincat Sub1000 = Form ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ; -- TODO: Encoding
|
||||
|
||||
oper mkNum : Str -> Str -> LinDigit = \mbili -> \lama ->
|
||||
{s = table {unit => mbili ; ten => lama }; size = pl };
|
||||
|
||||
-- lin n1 = mkNum "ków" ;
|
||||
lin n2 = mkNum "lámma" "labaatón";
|
||||
lin n3 = mkNum "síddi?" "soddón" ;
|
||||
lin n4 = mkNum "áfar" "afartón";
|
||||
lin n5 = mkNum "s^án" "kontón";
|
||||
lin n6 = mkNum "lí?" "lihdón";
|
||||
lin n7 = mkNum "toddóbo" "toddobátan";
|
||||
lin n8 = mkNum "siyéed" "siyyeétan" ;
|
||||
lin n9 = mkNum "sagáal" "sagaás^an";
|
||||
|
||||
oper ss : Str -> Form = \s1 -> {s = s1 ; size = pl} ;
|
||||
|
||||
lin pot01 =
|
||||
{s = table {f => "ków" }; size = sg };
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "tómon" ;
|
||||
lin pot111 = ss ("tómon" ++ "i" ++ "ków") ;
|
||||
lin pot1to19 d = ss ("tómon" ++ "i" ++ (d.s ! unit)) ;
|
||||
lin pot0as1 n = {s = n.s ! unit ; size = n.size } ;
|
||||
lin pot1 d = ss (d.s ! ten) ;
|
||||
lin pot1plus d e = ss (d.s ! ten ++ "i" ++ e.s ! unit) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (selsg d.size (d.s ! unit) ++ "boqól" );
|
||||
lin pot2plus d e = ss ((selsg d.size (d.s ! unit)) ++ "boqól" ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s } ;
|
||||
lin pot3 n = {s = (selsg n.size n.s) ++ "kún"} ;
|
||||
lin pot3plus n m = {s = (selsg n.size n.s) ++ "kún" ++ m.s} ;
|
||||
|
||||
oper selsg : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {pl => attr ; sg => [] } ! sz ;
|
||||
45
grammars/numerals/old/albanian.gf
Normal file
45
grammars/numerals/old/albanian.gf
Normal file
@@ -0,0 +1,45 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ;
|
||||
|
||||
param DForm = unit | teen | ten ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str };
|
||||
oper LinSub100 = {s : Str } ;
|
||||
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = LinSub100 ;
|
||||
lincat Sub1000 = LinSub100 ;
|
||||
|
||||
oper mkNum : Str -> LinDigit = \tri ->
|
||||
{ s = table {unit => tri ; teen => tri + "mbë" + "dhjetë" ; ten => tri + "dhjetë" }};
|
||||
|
||||
lin num x = {s = x.s } ;
|
||||
|
||||
lin n2 = {s = table {unit => "dy" ; teen => "dy" + "mbë" + "dhjetë" ; ten => "njëzet" }};
|
||||
lin n3 = mkNum "tre" ;
|
||||
lin n4 = {s = table {unit => "katër" ; teen => "katër" + "mbë" + "dhjetë" ; ten => "dyzet" } };
|
||||
lin n5 = mkNum "pesë" ;
|
||||
lin n6 = mkNum "gjashtë";
|
||||
lin n7 = mkNum "shtatë";
|
||||
lin n8 = mkNum "tetë";
|
||||
lin n9 = mkNum "nëntë";
|
||||
|
||||
oper mkR : Str -> LinSub100 = \n -> {s = n } ;
|
||||
|
||||
lin pot01 = { s = table {_ => "një" }};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = mkR "dhjetë" ;
|
||||
lin pot111 = mkR ("një" + "mbë" + "dhjetë") ;
|
||||
lin pot1to19 d = mkR (d.s ! teen) ;
|
||||
lin pot0as1 n = mkR (n.s ! unit) ;
|
||||
lin pot1 d = mkR (d.s ! ten) ;
|
||||
lin pot1plus d e = mkR ((d.s ! ten) ++ "e" ++ (e.s ! unit)) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = mkR (bind (d.s ! unit) "qind") ;
|
||||
lin pot2plus d e = mkR ((bind (d.s ! unit) "qind") ++ "e" ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s };
|
||||
lin pot3 n = {s = n.s ++ "mijë" } ;
|
||||
lin pot3plus n m = {s = n.s ++ "mijë" ++ m.s} ;
|
||||
|
||||
44
grammars/numerals/old/bearlake_slave.gf
Normal file
44
grammars/numerals/old/bearlake_slave.gf
Normal file
@@ -0,0 +1,44 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param DForm = unit | hundred ;
|
||||
|
||||
oper LinDigit = {s : Str } ;
|
||||
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = {s : Str } ;
|
||||
lincat Sub1000 = {s : Str } ;
|
||||
|
||||
oper mkNum : Str -> LinDigit = \two ->
|
||||
{s = two } ;
|
||||
|
||||
-- TODO: Transl.
|
||||
|
||||
lin num x = x ;
|
||||
-- lin n1 mkNum "l-ée" ;
|
||||
lin n2 = mkNum "nákee" ;
|
||||
lin n3 = mkNum "tai" ;
|
||||
lin n4 = mkNum "di,i," ;
|
||||
lin n5 = mkNum "so,lái" ;
|
||||
lin n6 = mkNum "?ehts'é,tai" ;
|
||||
lin n7 = mkNum "l-á,hdi,i," ;
|
||||
lin n8 = mkNum "?ehts'é,di,i," ;
|
||||
lin n9 = mkNum "l-óto," ;
|
||||
|
||||
oper o : Str = "?ó," ;
|
||||
|
||||
lin pot01 = {s = "l-ée" } ;
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = {s = variants {"honéno," ; "hóno" }} ;
|
||||
lin pot111 = {s = variants {"honéno," ; "hóno" } ++ o ++ "l-ée" } ;
|
||||
lin pot1to19 d = {s = (variants {"honéno," ; "hóno" }) ++ o ++ d.s } ;
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = {s = d.s ++ (variants {"honéno," ; "óno,"})} ;
|
||||
lin pot1plus d e = {s = d.s ++ (variants {"honéno," ; "óno,"}) ++ o ++ e.s } ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = {s = d.s ++ "lak'o, óno,"} ;
|
||||
lin pot2plus d e = {s = d.s ++ "lak'o, óno," ++ e.s} ;
|
||||
lin pot2as3 n = n ;
|
||||
lin pot3 n = {s = n.s ++ "lamíl"} ;
|
||||
lin pot3plus n m = {s = n.s ++ "lamíl" ++ m.s } ;
|
||||
|
||||
59
grammars/numerals/old/dagur.gf
Normal file
59
grammars/numerals/old/dagur.gf
Normal file
@@ -0,0 +1,59 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param DForm = unit | ten ;
|
||||
param Size = sg | pl | tenplus ;
|
||||
param S100 = indep | tenpart | tenelfu | sihpart ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
oper LinDigit = {s : DForm => Str ; size : Size} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
oper LinSub100 = {s : S100 => Str ; size : Size} ;
|
||||
lincat Sub100 = LinSub100 ;
|
||||
lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
|
||||
oper mkNum : Str -> Str -> LinDigit = \hulatt -> \haya ->
|
||||
{s = table {unit => hulatt ; ten => haya} ; size = pl} ;
|
||||
|
||||
lin num x0 =
|
||||
{s = x0.s } ;
|
||||
lin n2 = mkNum "hoire" "hori" ;
|
||||
lin n3 = mkNum "guarebe" "goci" ;
|
||||
lin n4 = mkNum "durube" "duci" ;
|
||||
lin n5 = mkNum "taau" "tabi" ;
|
||||
lin n6 = mkNum "jireuoo" "jari" ;
|
||||
lin n7 = mkNum "doloo" "dale" ;
|
||||
lin n8 = mkNum "naime" "nai" ;
|
||||
lin n9 = mkNum "ise" "ire" ;
|
||||
|
||||
oper ss1 : Str -> Str -> Str -> LinSub100 = \assir -> \ten -> \unitpart ->
|
||||
{s = table {indep => assir ; tenpart => ten ; tenelfu => [] ; sihpart => unitpart} ; size = tenplus } ;
|
||||
|
||||
oper ss : Str -> Str -> Str -> LinSub100 = \assir -> \ten -> \unitpart ->
|
||||
{s = table {indep => assir ; tenpart => ten ; tenelfu => ten ; sihpart => unitpart} ; size = tenplus } ;
|
||||
|
||||
lin pot01 =
|
||||
{s = table {unit => "neke" ; ten => "harebe" }; size = sg};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss1 "harebe" "neke" [] ;
|
||||
lin pot111 = ss1 ("hareben" ++ "neke") "neke" "miange" ;
|
||||
lin pot1to19 d = ss1 ("hareben" ++ d.s ! unit) "neke" (mkmiange d.size (d.s ! unit)) ;
|
||||
lin pot0as1 n = {s = table {indep => n.s ! unit ; sihpart => mkmiange n.size (n.s ! unit) ; _ => [] } ; size = n.size} ;
|
||||
lin pot1 d = ss (d.s ! ten) (d.s ! unit) [] ;
|
||||
lin pot1plus d e = ss ((d.s ! ten) ++ (e.s ! unit))
|
||||
(d.s ! unit)
|
||||
(mkmiange e.size (e.s ! unit));
|
||||
|
||||
lin pot1as2 n = {s = n.s ! indep ; s2 = n.s ! tenelfu ++ "tume" ++ n.s ! sihpart ; size = n.size} ;
|
||||
|
||||
lin pot2 d = {s = (sel d.size [] (d.s ! unit)) ++ "jau" ;
|
||||
s2 = sel d.size "harebe" (d.s ! ten) ; size = tenplus} ;
|
||||
lin pot2plus d e = {s = (sel d.size [] (d.s ! unit)) ++ "jau" ++ e.s ! indep ; s2 = d.s ! ten ++ e.s ! tenpart ++ "tume" ++ e.s ! sihpart ; size = tenplus} ;
|
||||
lin pot2as3 n = {s = n.s} ;
|
||||
lin pot3 n = {s = table {pl => n.s ++ "miange" ; sg => "miange" ; tenplus => n.s2 } ! n.size} ;
|
||||
lin pot3plus n m = {s = table {pl => n.s ++ "miange" ; sg => "miange" ; tenplus => n.s2 } ! n.size ++ m.s} ;
|
||||
|
||||
oper mkmiange : Size -> Str -> Str = \sz -> \attr -> (sel sz [] attr) ++ "miange" ;
|
||||
|
||||
oper sel : Size -> Str -> Str -> Str = \sz -> \a -> \b -> table {sg => a ; _ => b} ! sz ;
|
||||
49
grammars/numerals/old/demo.gfs
Normal file
49
grammars/numerals/old/demo.gfs
Normal file
@@ -0,0 +1,49 @@
|
||||
i -old -abs=Nums -cnc=Decimal numerals.Dec.gf
|
||||
i -old -abs=Nums -cnc=Amharic amharic.gf
|
||||
i -old -abs=Nums -cnc=Basque basque.gf
|
||||
--i -old -abs=Nums biblical_hebrew.gf
|
||||
--i -old -abs=Nums classical_arabic.gf
|
||||
i -old -abs=Nums -cnc=Greek classical_greek.gf
|
||||
--i -old -abs=Nums croatian.gf
|
||||
i -old -abs=Nums -cnc=Geez geez.gf
|
||||
i -old -abs=Nums -cnc=Hindi hindi.gf
|
||||
i -old -abs=Nums -cnc=Hungarian hungarian.gf
|
||||
i -old -abs=Nums -cnc=Icelandic icelandic.gf
|
||||
i -old -abs=Nums -cnc=Irish irish.gf
|
||||
--i -old -abs=Nums italian.gf
|
||||
--i -old -abs=Nums japanese.gf
|
||||
--i -old -abs=Nums khowar.gf
|
||||
--i -old -abs=Nums korean.gf
|
||||
--i -old -abs=Nums kulung.gf
|
||||
--i -old -abs=Nums modern_greek.gf
|
||||
--i -old -abs=Nums mongolian.gf
|
||||
i -old -abs=Nums -cnc=Arabic numerals.Ara.gf
|
||||
i -old -abs=Nums -cnc=Hebrew numerals.Heb.gf
|
||||
--i -old -abs=Nums numerals.ChiU.gf
|
||||
--i -old -abs=Nums numerals.Dan.gf
|
||||
i -old -abs=Nums -cnc=German numerals.Deu.gf
|
||||
i -old -abs=Nums -cnc=English numerals.Eng.gf
|
||||
i -old -abs=Nums -cnc=French numerals.Fra.gf
|
||||
i -old -abs=Nums -cnc=Malay numerals.Malay.gf
|
||||
i -old -abs=Nums -cnc=Dutch numerals.Ned.gf
|
||||
--i -old -abs=Nums numerals.NorB.gf
|
||||
i -old -abs=Nums -cnc=Russian numerals.Rus.gf
|
||||
i -old -abs=Nums -cnc=Finnish numerals.Suo.gf
|
||||
i -old -abs=Nums -cnc=Swedish numerals.Swe.gf
|
||||
--i -old -abs=Nums numerals.Tam.gf
|
||||
i -old -abs=Nums -cnc=OldChurchSlavonic old_church_slavonic.gf
|
||||
i -old -abs=Nums -cnc=Pashto pashto.gf
|
||||
--i -old -abs=Nums polish.gf
|
||||
--i -old -abs=Nums portuguese.gf
|
||||
i -old -abs=Nums -cnc=Quechua quechua.gf
|
||||
--i -old -abs=Nums romanian.gf
|
||||
i -old -abs=Nums -cnc=Sanskrit sanskrit.gf
|
||||
--i -old -abs=Nums slovak.gf
|
||||
--i -old -abs=Nums sorani.gf
|
||||
--i -old -abs=Nums spanish.gf
|
||||
--i -old -abs=Nums swiss_french.gf
|
||||
--i -old -abs=Nums tamil.gf
|
||||
--i -old -abs=Nums tibetan.gf
|
||||
--i -old -abs=Nums totonac.gf
|
||||
i -old -abs=Nums -cnc=Turkish turkish.gf
|
||||
--ts -lang -f
|
||||
50
grammars/numerals/old/fulfulde.gf
Normal file
50
grammars/numerals/old/fulfulde.gf
Normal file
@@ -0,0 +1,50 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param Size = sg | pl | two;
|
||||
|
||||
oper Form = {s : Str ; size : Size } ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = Form ;
|
||||
lincat Sub10 = Form ;
|
||||
lincat Sub100 = Form ;
|
||||
lincat Sub1000 = Form ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ; -- TODO: Encoding
|
||||
|
||||
oper mkNum = ss ;
|
||||
|
||||
oper ss : Str -> Form = \f -> {s = f ; size = pl } ;
|
||||
|
||||
-- lin n1 = mkNum "go'o" ;
|
||||
lin n2 = {s = "d.id.i" ; size = two } ;
|
||||
lin n3 = mkNum "tati" ;
|
||||
lin n4 = mkNum "nai" ;
|
||||
lin n5 = mkNum "jowi" ;
|
||||
lin n6 = mkNum "jowe:go" ;
|
||||
lin n7 = mkNum "jowe:d.id.i" ;
|
||||
lin n8 = mkNum "jowe:tati" ;
|
||||
lin n9 = mkNum "jowe:nai" ;
|
||||
|
||||
lin pot01 = {s = "go'o" ; size = sg };
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "sappo" ;
|
||||
lin pot111 = ss ("sappo" ++ "e" ++ "go'o") ;
|
||||
lin pot1to19 d = ss ("sappo" ++ "e" ++ d.s) ;
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = ss (mkten d.size d.s) ;
|
||||
lin pot1plus d e = ss ((mkten d.size d.s) ++ "e" ++ e.s) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (mkhund d.size d.s) ;
|
||||
lin pot2plus d e = ss ((mkhund d.size d.s) ++ "e" ++ e.s) ;
|
||||
lin pot2as3 n = n ;
|
||||
lin pot3 n = ss (mkthou n.size n.s) ;
|
||||
lin pot3plus n m = ss ((mkthou n.size n.s) ++ m.s) ;
|
||||
|
||||
oper mkten : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {two => "no:gas" ; _ => "chappand.e" ++ attr } ! sz ;
|
||||
oper mkhund : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {sg => "temerre" ; _ => "temed.d.e" ++ attr} ! sz ;
|
||||
oper mkthou : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {sg => "ujine:re"; _ => variants {"ujine" ++ attr ; "ujine:je" ++ attr}} ! sz ;
|
||||
45
grammars/numerals/old/guahibo.gf
Normal file
45
grammars/numerals/old/guahibo.gf
Normal file
@@ -0,0 +1,45 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ;
|
||||
|
||||
param Size = sg | pl ;
|
||||
|
||||
oper All = {s : Str ; size : Size};
|
||||
|
||||
lincat Digit = All ;
|
||||
lincat Sub10 = All ;
|
||||
lincat Sub100 = All ;
|
||||
lincat Sub1000 = All ;
|
||||
|
||||
oper mkNum : Str -> All = \tri ->
|
||||
{ s = tri ; size = pl};
|
||||
|
||||
lin num x = {s = x.s } ;
|
||||
|
||||
lin n2 = mkNum "aniha" ;
|
||||
lin n3 = mkNum "akueya" ;
|
||||
lin n4 = mkNum "yana" ;
|
||||
lin n5 = mkNum "kobe" ;
|
||||
lin n6 = mkNum "ku" ;
|
||||
lin n7 = mkNum "iwi" ;
|
||||
lin n8 = mkNum "yu" ;
|
||||
lin n9 = mkNum "ho" ;
|
||||
|
||||
oper ss : Str -> All = \s1 -> {s = s1 ; size = pl } ;
|
||||
|
||||
lin pot01 = { s = "kae" ; size = sg};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "xu" ;
|
||||
lin pot111 = ss ("xu" + "kae") ;
|
||||
lin pot1to19 d = ss (bind "xu" d.s) ;
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = ss (bind d.s "bae" );
|
||||
lin pot1plus d e = ss ((bind d.s "bae") ++ e.s ) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (bind ((selsg d.s) ! d.size) "sia" ) ;
|
||||
lin pot2plus d e = ss ((bind ((selsg d.s) ! d.size) "sia") ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s };
|
||||
lin pot3 n = {s = bind ((selsg n.s) ! n.size) "sunu" } ;
|
||||
lin pot3plus n m = {s = (bind ((selsg n.s) ! n.size) "sunu") ++ m.s} ;
|
||||
|
||||
oper selsg : Str -> Size => Str = \s -> table {sg => [] ; pl => s } ;
|
||||
48
grammars/numerals/old/guarani.gf
Normal file
48
grammars/numerals/old/guarani.gf
Normal file
@@ -0,0 +1,48 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ;
|
||||
|
||||
param Size = sg | pl ;
|
||||
|
||||
oper All = {s : Str ; s2 : Str ; size : Size};
|
||||
|
||||
lincat Digit = All ;
|
||||
lincat Sub10 = All ;
|
||||
lincat Sub100 = {s : Str ; size : Size} ;
|
||||
lincat Sub1000 = {s : Str ; size : Size} ;
|
||||
|
||||
oper mkNum : Str -> All = \tri ->
|
||||
{ s = tri ; s2 = "kua" + tri ; size = pl};
|
||||
|
||||
oper mkNum2 : Str -> Str -> All = \tri -> \teen ->
|
||||
{ s = tri ; s2 = "kua" + teen ; size = pl};
|
||||
|
||||
lin num x = {s = x.s } ; -- TODO
|
||||
|
||||
lin n2 = mkNum2 "moko~i" "ko~i";
|
||||
lin n3 = mkNum2 "mpohapy" "py";
|
||||
lin n4 = mkNum2 "irundy" "rundy";
|
||||
lin n5 = mkNum "po" ;
|
||||
lin n6 = mkNum "potei~" ;
|
||||
lin n7 = mkNum "poko~i" ;
|
||||
lin n8 = mkNum "poapy" ;
|
||||
lin n9 = mkNum "porundy" ;
|
||||
|
||||
oper ss : Str -> {s : Str ; size : Size} = \s1 -> {s = s1 ; size = pl } ;
|
||||
|
||||
lin pot01 = { s = "petei~" ; s2 = "dummy" ; size = sg};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "kua~" ;
|
||||
lin pot111 = ss ("kua" + "tei~") ;
|
||||
lin pot1to19 d = ss d.s2 ;
|
||||
lin pot0as1 n = {s = n.s ; size = n.size} ;
|
||||
lin pot1 d = ss (bind d.s "kua~" );
|
||||
lin pot1plus d e = ss ((bind d.s "kua~") ++ e.s ) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (((selsg d.s) ! d.size) ++ "sa~" ) ;
|
||||
lin pot2plus d e = ss ((((selsg d.s) ! d.size) ++ "sa~") ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s };
|
||||
lin pot3 n = {s = bind ((selsg n.s) ! n.size) "ma" } ;
|
||||
lin pot3plus n m = {s = (bind ((selsg n.s) ! n.size) "ma") ++ m.s} ;
|
||||
|
||||
oper selsg : Str -> Size => Str = \s -> table {sg => variants {[]; "petei~"}; pl => s } ;
|
||||
79
grammars/numerals/old/kabardian.gf
Normal file
79
grammars/numerals/old/kabardian.gf
Normal file
@@ -0,0 +1,79 @@
|
||||
-- Kabardian
|
||||
|
||||
-- W is superscript w (= IPA labialisation)
|
||||
-- & is schwa upside down e
|
||||
-- s'
|
||||
-- L is lambda
|
||||
-- L is lambda with dash across
|
||||
-- x^ is x with ^ ontop
|
||||
-- G is gamma
|
||||
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param DForm = unit | unite | unitra | teen | ten | tenra | hund | thou;
|
||||
|
||||
oper LinDigit = {s : DForm => Str };
|
||||
oper LinS100 = {s : Str; s2 : Str } ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = LinS100 ;
|
||||
lincat Sub1000 = LinS100 ;
|
||||
|
||||
oper mkNum : Str -> LinDigit = \dwa ->
|
||||
{s = table {unit => dwa ; unite => dwa + "&" ; unitra => dwa + "&ra" ;
|
||||
ten => dwa + "&s'" ; tenra => dwa + "&s'ra" ;
|
||||
teen => "p's''&" + "k'W&" + dwa ;
|
||||
hund => "s'a" + "&y" + dwa ;
|
||||
thou => variants {"m&yn"+"&y"+dwa ; dwa+"a"+"s''a"++"m&yn"}}};
|
||||
|
||||
oper mkNum2 : Str -> LinDigit = \dwa ->
|
||||
{s = table {unit => dwa ; unite => dwa + "&" ; unitra => dwa + "&ra" ;
|
||||
ten => dwa + "as'" ; tenra => dwa + "as'ra" ;
|
||||
teen => "p's''&"+"k'W&"+"t'" ;
|
||||
hund => "s'a" + "&y" + "t'" ;
|
||||
thou => variants {"m&yn"+"&y"+"t'" ; dwa+"a"+"s''a"++"m&yn"}}};
|
||||
|
||||
oper mkNum3 : Str -> LinDigit = \dwa ->
|
||||
{s = table {unit => dwa ; unite => dwa + "&" ; unitra => dwa + "&ra" ;
|
||||
ten => dwa + "as'" ; tenra => dwa + "as'ra" ;
|
||||
teen => "p's''&"+"k'W&"+dwa ;
|
||||
hund => "s'a" + "&y" + dwa ;
|
||||
thou => variants {"m&yn"+"&y"+dwa ; dwa+"a"+"s''a"++"m&yn"}}};
|
||||
|
||||
lin num x = {s = x.s } ; -- TODO ;
|
||||
|
||||
lin n2 = mkNum2 "t'?W" ;
|
||||
lin n3 = mkNum3 "s'" ;
|
||||
lin n4 = mkNum "p'L-'" ;
|
||||
lin n5 = mkNum "tx^W" ;
|
||||
lin n6 = mkNum "x^";
|
||||
lin n7 = mkNum "bL" ;
|
||||
lin n8 = mkNum "y" ;
|
||||
lin n9 = mkNum "bGW" ;
|
||||
|
||||
oper bind : Str -> Str -> Str = \s1 -> \s2 -> s1 ++ s2 ;
|
||||
|
||||
lin pot01 =
|
||||
{s = table {unit => "z" ; unite => "z&" ; unitra => "z&" + "ra" ;
|
||||
teen => "p's''&"+"k'W&"+"z" ; ten => "dummy" ; tenra => "dummy" ;
|
||||
hund => "s'a" ; thou => "m&yn"}};
|
||||
|
||||
oper ss : Str -> LinS100 = \f ->
|
||||
{s = f ; s2 = variants {("m&yn"+"&y") ++ f ; (bind f "as'a") ++ "m&yn"}};
|
||||
|
||||
lin pot0 d = d ;
|
||||
lin pot110 =
|
||||
{s = "p's''&" ;
|
||||
s2 = variants {"m&yn"+"&y"+"p's''" ; "p's''"+"a"+"s''a"++"m&yn"}};
|
||||
lin pot111 = ss ("p's''&"+"k'W&"+"z") ;
|
||||
lin pot1to19 d = ss (d.s ! teen) ;
|
||||
lin pot0as1 n = {s = n.s ! unite ; s2 = n.s ! thou } ;
|
||||
lin pot1 d = ss (variants {(d.s ! ten) ; (d.s ! unite) ++ "p's''&wa"}) ;
|
||||
-- extra variant p's''ay = 80
|
||||
lin pot1plus d e = ss ((d.s ! tenra) ++ (e.s ! unitra)) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (d.s ! hund) ;
|
||||
lin pot2plus d e = ss ((d.s ! hund) ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s } ;
|
||||
lin pot3 n = {s = n.s2} ;
|
||||
lin pot3plus n m = {s = n.s2 ++ m.s} ;
|
||||
47
grammars/numerals/old/kambera.gf
Normal file
47
grammars/numerals/old/kambera.gf
Normal file
@@ -0,0 +1,47 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param Size = sg | two | pl ;
|
||||
|
||||
oper Form = {s : Str ; size : Size} ;
|
||||
|
||||
lincat Digit = Form ;
|
||||
lincat Sub10 = Form ;
|
||||
lincat Sub100 = Form ;
|
||||
lincat Sub1000 = Form ;
|
||||
|
||||
oper mkNum : Str -> Form = \two ->
|
||||
{s = two ; size = pl} ;
|
||||
|
||||
lin num x = x ;
|
||||
-- lin n1 mkNum "diha" ;
|
||||
lin n2 = {s = "dua" ; size = two} ;
|
||||
lin n3 = mkNum "tailu" ;
|
||||
lin n4 = mkNum "patu" ;
|
||||
lin n5 = mkNum "lima" ;
|
||||
lin n6 = mkNum "nomu" ;
|
||||
lin n7 = mkNum "pitu" ;
|
||||
lin n8 = mkNum "walu" ;
|
||||
lin n9 = mkNum "hiwa" ;
|
||||
|
||||
oper ss : Str -> {s : Str ; size : Size} = \s1 -> {s = s1 ; size = pl} ;
|
||||
|
||||
lin pot01 = {s = "diha" ; size = sg} ;
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "hakambulu" ;
|
||||
lin pot111 = ss ("hakambulu" ++ "hau") ;
|
||||
lin pot1to19 d = ss ("hakambulu" ++ (if12 d.size d.s)) ;
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = ss (d.s ++ "kambulu" ) ;
|
||||
lin pot1plus d e = ss (d.s ++ "kambulu" ++ (if12 e.size e.s)) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (selsg d.size "hangahu" (d.s ++ "ngahu")) ;
|
||||
lin pot2plus d e = ss (selsg d.size "hangahu" (d.s ++ "ngahu") ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s };
|
||||
lin pot3 n = {s = (selsg n.size "hariu" (n.s ++ "riu"))} ;
|
||||
lin pot3plus n m = {s = (selsg n.size "hariu" (n.s ++ "riu")) ++ m.s } ;
|
||||
|
||||
oper if12 : Size -> Str -> Str = \sz -> \a ->
|
||||
table {sg => "hau" ; two => "dambu" ; _ => a} ! sz ;
|
||||
oper selsg : Size -> Str -> Str -> Str = \sz -> \a -> \b ->
|
||||
table {sg => a ; _ => b} ! sz ;
|
||||
|
||||
41
grammars/numerals/old/kawaiisu.gf
Normal file
41
grammars/numerals/old/kawaiisu.gf
Normal file
@@ -0,0 +1,41 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ;
|
||||
oper na : {s : Str } = {s = "N/A" } ;
|
||||
|
||||
oper LinDigit = {s : Str ; s2 : Str ; s3 : Str} ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = {s : Str } ;
|
||||
lincat Sub1000 = {s : Str } ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ; -- TODO
|
||||
|
||||
oper mkNum : Str -> LinDigit = \s1 -> {s = s1 ; s2 = s1 + "yu" ; s3 = s1 + "suu"} ;
|
||||
oper mkNum2 : Str -> LinDigit = \s1 -> {s = s1 ; s2 = s1 + "yu" ; s3 = s1 + "cuu"} ;
|
||||
lin n2 = mkNum "waha" ;
|
||||
lin n3 = mkNum "pehe" ;
|
||||
lin n4 = mkNum "wacuu" ;
|
||||
lin n5 = mkNum2 "mani-gi" ;
|
||||
lin n6 = mkNum2 "navaha" ;
|
||||
lin n7 = {s = "no?mi-zi" ; s2 = "no?mi-zi" ; s3 = "no?mi-zicuu" };
|
||||
lin n8 = {s = "nanawacuu" ; s2 = "nanawacuu"; s3 = "nanawacuucuu" };
|
||||
lin n9 = mkNum2 "sukumi-su" ;
|
||||
|
||||
lin pot01 = mkNum "suu" ;
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = {s = "mi-mi-suuyu" } ;
|
||||
lin pot111 = {s = "mi-mi-susuuyu" } ;
|
||||
lin pot1to19 d = {s = bind "mi-mi-susuu" d.s2 } ;
|
||||
lin pot0as1 n = {s = n.s } ;
|
||||
lin pot1 d = {s = bind d.s3 "yu"} ;
|
||||
lin pot1plus d e = {s = bind d.s3 e.s2 } ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = na ;
|
||||
lin pot2plus d e = na ;
|
||||
lin pot2as3 n = n ;
|
||||
lin pot3 n = na ;
|
||||
lin pot3plus n m = na ;
|
||||
45
grammars/numerals/old/kolyma_yukaghir.gf
Normal file
45
grammars/numerals/old/kolyma_yukaghir.gf
Normal file
@@ -0,0 +1,45 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
oper na = {s = "N/A" };
|
||||
|
||||
param DForm = u | teen ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str } ;
|
||||
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = {s : Str } ;
|
||||
lincat Sub1000 = {s : Str } ;
|
||||
|
||||
oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ;
|
||||
|
||||
oper mkNum : Str -> LinDigit = \a ->
|
||||
{s = table {u => a ; teen => "kun'il" ++ a ++ "budie"}} ;
|
||||
oper mkNum2 : Str -> Str -> LinDigit = \a -> \b ->
|
||||
{s = table {u => a ; teen => b ++ "budie"}} ;
|
||||
|
||||
lin num x = x ;
|
||||
-- lin n1 mkNum "irkin" ;
|
||||
lin n2 = mkNum2 "ataqun" ("kun" ++ "ataqun") ;
|
||||
lin n3 = mkNum2 "ja:n" ("kun'il" ++ "ja:l");
|
||||
lin n4 = mkNum "ilekun" ;
|
||||
lin n5 = mkNum "n'ahanbo:d'e" ;
|
||||
lin n6 = mkNum "malha:n" ;
|
||||
lin n7 = mkNum "purki:n" ;
|
||||
lin n8 = mkNum "malhi:lek" ;
|
||||
lin n9 = mkNum "kunirkil'd'o:j" ;
|
||||
|
||||
lin pot01 = mkNum2 "irkin" ("kun" ++ "irku");
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = {s = "kun'in"};
|
||||
lin pot111 = {s = ("kun" ++ "irkubudie")} ;
|
||||
lin pot1to19 d = {s = d.s ! teen} ;
|
||||
lin pot0as1 n = {s = n.s ! u} ;
|
||||
lin pot1 d = {s = d.s ! u ++ "kun'el"} ;
|
||||
lin pot1plus d e = {s = d.s ! u ++ "kun'el" ++ e.s ! u};
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = {s = "kun'in" ++ "kun'in" ++ d.s ! u ++ "budie"} ;
|
||||
lin pot2plus d e = {s = "kun'in" ++ "kun'in" ++ d.s ! u ++ "budie" ++ e.s } ;
|
||||
lin pot2as3 n = n ;
|
||||
lin pot3 n = na ;
|
||||
lin pot3plus n m = na ;
|
||||
37
grammars/numerals/old/kwaza.gf
Normal file
37
grammars/numerals/old/kwaza.gf
Normal file
@@ -0,0 +1,37 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = {s : Str } ;
|
||||
lincat Sub10 = {s : Str } ;
|
||||
lincat Sub100 = {s : Str } ;
|
||||
lincat Sub1000 = {s : Str } ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ; -- TODO
|
||||
|
||||
oper na = {s = "N/A" } ;
|
||||
|
||||
lin n2 = {s = "aky'hy~" };
|
||||
lin n3 = {s = "e'ma~" };
|
||||
lin n4 = {s = "ElE'lE" };
|
||||
lin n5 = {s = "bwako'je" };
|
||||
lin n6 = na ;
|
||||
lin n7 = na ;
|
||||
lin n8 = na ;
|
||||
lin n9 = na ;
|
||||
|
||||
lin pot01 =
|
||||
{s = "tei'hy~"};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = na ;
|
||||
lin pot111 = na ;
|
||||
lin pot1to19 d = na ;
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = na ;
|
||||
lin pot1plus d e = na ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = na ;
|
||||
lin pot2plus d e = na ;
|
||||
lin pot2as3 n = n ;
|
||||
lin pot3 n = na ;
|
||||
lin pot3plus n m = na ;
|
||||
56
grammars/numerals/old/lithuanian.gf
Normal file
56
grammars/numerals/old/lithuanian.gf
Normal file
@@ -0,0 +1,56 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
-- y:
|
||||
-- e:
|
||||
-- i~
|
||||
-- s^
|
||||
-- m~
|
||||
-- n~
|
||||
-- ú:
|
||||
-- u,
|
||||
|
||||
param Size = sg | pl ;
|
||||
param DForm = unit | teen | ten ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str ; size : Size };
|
||||
oper LinSub100 = {s : Str ; size : Size } ;
|
||||
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = LinSub100 ;
|
||||
lincat Sub1000 = LinSub100 ;
|
||||
|
||||
oper mkNum : Str -> Str -> Str -> LinDigit = \tri -> \dvylika -> \tribase ->
|
||||
{ s = table {unit => tri ; teen => dvylika ; ten => tribase + "des^imt" } ; size = pl};
|
||||
|
||||
lin num x = {s = x.s} ; -- TODO ;
|
||||
|
||||
lin n2 = mkNum "dù" "dvýlika" "dvì" ;
|
||||
lin n3 = mkNum "try:s" "trýlika" "trìs" ;
|
||||
lin n4 = mkNum "keturì" "keturiólika" "ke:turias" ;
|
||||
lin n5 = mkNum "penkì" "penkiólika" "pen~kias" ;
|
||||
lin n6 = mkNum "s^es^ì" "s^es^iólika" "s^e:s^ias" ;
|
||||
lin n7 = mkNum "septynì" "septyniólika" "septýnias" ;
|
||||
lin n8 = mkNum "as^tuonì" "as^tuoniólika" "as^túonias" ;
|
||||
lin n9 = mkNum "devynì" "devyniólika" "devýnias" ;
|
||||
|
||||
oper mkR : Str -> LinSub100 = \n -> {s = n ; size = pl } ;
|
||||
|
||||
lin pot01 = { s = table {_ => "víenas" } ; size = sg };
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = mkR (variants {"de:s^imt"; "des^imtìs" });
|
||||
lin pot111 = mkR "vienúolika" ;
|
||||
lin pot1to19 d = mkR (d.s ! teen) ;
|
||||
lin pot0as1 n = mkR (n.s ! unit) ;
|
||||
lin pot1 d = mkR (d.s ! ten) ;
|
||||
lin pot1plus d e = mkR ((d.s ! ten) ++ (e.s ! unit)) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = mkR (selsg d.size "s^im~tas" ((d.s ! unit) ++ "s^imtai~")) ;
|
||||
lin pot2plus d e = mkR ((selsg d.size "s^im~tas" ((d.s ! unit) ++ "s^imtai~")) ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s };
|
||||
lin pot3 n = {s = selsg n.size "tú:kstantis" (n.s ++ "tú:kstanc^iu,") } ;
|
||||
lin pot3plus n m = {s = (selsg n.size "tú:kstantis" (n.s ++ "tú:kstanc^iu,")) ++ m.s} ;
|
||||
|
||||
oper selsg : Size -> Str -> Str -> Str = \sz -> \s1 -> \s2 ->
|
||||
table {sg => s1 ; pl => s2} ! sz ;
|
||||
|
||||
61
grammars/numerals/old/lotuxo.gf
Normal file
61
grammars/numerals/old/lotuxo.gf
Normal file
@@ -0,0 +1,61 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param Size = sg | pl ;
|
||||
|
||||
oper Form = {s : Str ; size : Size } ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = Form ;
|
||||
lincat Sub10 = Form ;
|
||||
lincat Sub100 = Form ;
|
||||
lincat Sub1000 = Form ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ; -- TODO: Encoding
|
||||
|
||||
oper mkNum : Str -> Form = \mbili ->
|
||||
{s = mbili; size = pl };
|
||||
|
||||
-- N [ng]
|
||||
-- E epsilon
|
||||
-- I i without dot
|
||||
-- O IPA for o in cod
|
||||
|
||||
-- lin n1 = mkNum "âbotye" ;
|
||||
lin n2 = mkNum "ârrexai" ;
|
||||
lin n3 = mkNum "xunixoi" ;
|
||||
lin n4 = mkNum "aNwan" ;
|
||||
lin n5 = mkNum "miet" ;
|
||||
lin n6 = mkNum "IllE" ;
|
||||
lin n7 = mkNum "xattarIk" ;
|
||||
lin n8 = mkNum "xottoxunik" ;
|
||||
lin n9 = mkNum "xOttONwan" ;
|
||||
|
||||
oper xo : Str = pre {"xO" ;
|
||||
"xo" / strs {"m" ; "xu" ; "xo"} ;
|
||||
"x'" / strs {"â" ; "a"}} ;
|
||||
|
||||
oper ss : Str -> Form = \s1 -> {s = s1 ; size = pl} ;
|
||||
|
||||
lin pot01 =
|
||||
{s = "âbotye" ; size = sg };
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "'tOmOn" ;
|
||||
lin pot111 = ss ("'tOmOn" ++ xo ++ "âbotye") ;
|
||||
lin pot1to19 d = ss ("'tOmOn" ++ xo ++ d.s ) ;
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = ss ("atOmwana" ++ d.s ) ;
|
||||
lin pot1plus d e = ss ("atOmwana" ++ d.s ++ xo ++ e.s ) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (mkessixa d.size d.s) ;
|
||||
lin pot2plus d e = ss ((mkessixa d.size d.s) ++ "ikO" ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s } ;
|
||||
lin pot3 n = {s = mktau n.size n.s } ;
|
||||
lin pot3plus n m = {s = (mktau n.size n.s) ++ "ikO" ++ m.s} ;
|
||||
|
||||
oper mkessixa : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {pl => "EssIxa" ++ attr ;
|
||||
sg => variants {"EssIxa" ++ "âbotye"; "atOmwana" ++ "'tOmOn"}} ! sz ;
|
||||
oper mktau : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {pl => "tausand" ++ attr ;
|
||||
sg => variants {"tausand" ++ "âbotye"; "EssIxa" ++ "'tOmOn"}} ! sz ;
|
||||
55
grammars/numerals/old/maale.gf
Normal file
55
grammars/numerals/old/maale.gf
Normal file
@@ -0,0 +1,55 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param Size = sg | pl ;
|
||||
param DForm = unit | ten ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str ; size : Size } ;
|
||||
oper Form = {s : Str ; size : Size } ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = Form ;
|
||||
lincat Sub1000 = {s : Str} ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ; -- TODO: Encoding
|
||||
|
||||
oper mkNum : Str -> Str -> LinDigit = \mbili -> \lama ->
|
||||
{s = table {unit => mbili ; ten => lama + "-támmi" }; size = pl };
|
||||
|
||||
-- b> is b with right bend
|
||||
-- ? without dot
|
||||
-- $ IPA [sh]
|
||||
|
||||
-- lin n1 = mkNum "pétte" ;
|
||||
lin n2 = mkNum "lam?ó" "lamá";
|
||||
lin n3 = mkNum "haitsó" "haytsí" ;
|
||||
lin n4 = mkNum "?oidó" "?oydí";
|
||||
lin n5 = mkNum "dóngo" "dóngi";
|
||||
lin n6 = mkNum "láhhó" "láhhi";
|
||||
lin n7 = mkNum "lánkayi" "lánkayi";
|
||||
lin n8 = mkNum "sálli" "sálli" ;
|
||||
lin n9 = mkNum "tásub>a" "tázub>i";
|
||||
|
||||
oper ss : Str -> Form = \s1 -> {s = s1 ; size = pl} ;
|
||||
|
||||
lin pot01 =
|
||||
{s = table {f => "pétte" }; size = sg };
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "táb>b>ó" ;
|
||||
lin pot111 = ss ("táb>b>ó" ++ "pétte") ;
|
||||
lin pot1to19 d = ss ("táb>b>ó" ++ (d.s ! unit)) ;
|
||||
lin pot0as1 n = {s = n.s ! unit ; size = n.size } ;
|
||||
lin pot1 d = ss (d.s ! ten) ;
|
||||
lin pot1plus d e = ss (d.s ! ten ++ e.s ! unit) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = {s = mkseeta d.size (d.s ! unit) };
|
||||
lin pot2plus d e = {s = (mkseeta d.size (d.s ! unit)) ++ e.s} ;
|
||||
lin pot2as3 n = {s = n.s } ;
|
||||
lin pot3 n = {s = n.s ++ "$íya"} ;
|
||||
lin pot3plus n m = {s = n.s ++ "$íya" ++ m.s} ;
|
||||
|
||||
oper mkseeta : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {pl => attr ++ "s'ééta" ;
|
||||
sg => "s'ééta" } ! sz ;
|
||||
59
grammars/numerals/old/maltese.gf
Normal file
59
grammars/numerals/old/maltese.gf
Normal file
@@ -0,0 +1,59 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param DForm = unit | teen | teenil | ten | hund ;
|
||||
param Size = sg | pl | dual ;
|
||||
|
||||
oper LinDigit = {s: DForm => Str ; s2 : Str ; size : Size } ;
|
||||
oper Form = {s : Str ; s2 : Str ; size : Size } ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = Form ;
|
||||
lincat Sub1000 = Form ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
|
||||
lin num x = x ; -- TODO
|
||||
|
||||
oper mkN : Str -> Str -> Str -> Str -> Str -> LinDigit = \u -> \tn -> \t -> \h -> \e ->
|
||||
{s = table {unit => u ; teen => tn + "ax" ; teenil => tn + "ax" + "il" ;
|
||||
ten => t ; hund => h ++ "mija"} ; s2 = e ; size = pl };
|
||||
|
||||
lin n2 =
|
||||
{s = table {unit => "tnejn" ;
|
||||
teen => "tnax" ; teenil => "tnax-il" ;
|
||||
ten => "gh-oxrin" ;
|
||||
hund => "mitejn"} ; s2 = "tnejn" ; size = dual} ;
|
||||
lin n3 = mkN "tlieta" "tlett" "tletin" "tliet" "tlitt";
|
||||
lin n4 = mkN "erbgh-a" "erbat" "erbgh-in" "erba'" "erbat";
|
||||
lin n5 = mkN "h-amsa" "h-mist" "h-amsin" "h-ames" "h-amest" ;
|
||||
lin n6 = mkN "sitta" "sitt" "sitt" "sitt" "sitt";
|
||||
lin n7 = mkN "sebgh-a" "sbat" "sbebgh-in" "seba'" "sebat" ;
|
||||
lin n8 = mkN "tmienja" "tmint" "tmenin" "tmien" "tmint" ;
|
||||
lin n9 = mkN "disgh-a" "dsat" "disgh-in" "disa'" "disat";
|
||||
|
||||
oper ss : Str -> Form = \s1 -> {s = s1 ; s2 = s1 ; size = pl };
|
||||
oper ss2 : Str -> Str -> Form = \a -> \b -> {s = a ; s2 = b ; size = pl };
|
||||
|
||||
lin pot01 =
|
||||
{s = table {unit => "wieh-ed" ; teen => "h-dax" ; _ => "mija" } ;
|
||||
s2 = "wieh-ed" ;
|
||||
size = sg};
|
||||
lin pot0 d = d;
|
||||
lin pot110 = ss "gh-axra" ;
|
||||
lin pot111 = ss2 "h-dax" "h-dax-il";
|
||||
lin pot1to19 d = ss2 (d.s ! teen) (d.s ! teenil);
|
||||
lin pot0as1 n = {s = n.s ! unit ; s2 = n.s2 ; size = n.size} ;
|
||||
lin pot1 d = ss (d.s ! ten) ;
|
||||
lin pot1plus d e = ss ((e.s ! unit) ++ "u" ++ (d.s ! ten)) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (d.s ! hund) ;
|
||||
lin pot2plus d e = ss2 ((d.s ! hund) ++ "u" ++ e.s)
|
||||
((d.s ! hund) ++ "u" ++ e.s2) ;
|
||||
lin pot2as3 n = {s = n.s } ;
|
||||
lin pot3 n = { s = (elf n.s2) ! n.size } ;
|
||||
lin pot3plus n m = { s = (elf n.s2) ! n.size ++ m.s} ;
|
||||
|
||||
oper elf : Str -> Size => Str = \attr ->
|
||||
table {pl => attr ++ "elef" ; dual => "elfejn" ; sg => "elf"} ;
|
||||
|
||||
43
grammars/numerals/old/mapuche.gf
Normal file
43
grammars/numerals/old/mapuche.gf
Normal file
@@ -0,0 +1,43 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param Size = sg | pl ;
|
||||
|
||||
oper All = {s : Str ; size : Size};
|
||||
|
||||
lincat Digit = All ;
|
||||
lincat Sub10 = All ;
|
||||
lincat Sub100 = All ;
|
||||
lincat Sub1000 = All ;
|
||||
|
||||
oper mkNum : Str -> All = \tri ->
|
||||
{ s = tri ; size = pl};
|
||||
|
||||
lin num x = {s = x.s } ;
|
||||
|
||||
lin n2 = mkNum "epu" ;
|
||||
lin n3 = mkNum "külá" ;
|
||||
lin n4 = mkNum "meli" ;
|
||||
lin n5 = mkNum "kechu" ;
|
||||
lin n6 = mkNum "kayu" ;
|
||||
lin n7 = mkNum "reqle" ;
|
||||
lin n8 = mkNum "pura" ;
|
||||
lin n9 = mkNum "aylla" ;
|
||||
|
||||
oper ss : Str -> All = \s1 -> {s = s1 ; size = pl } ;
|
||||
|
||||
lin pot01 = { s = "kiñe" ; size = sg};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "mari" ;
|
||||
lin pot111 = ss ("mari" ++ "kiñe") ;
|
||||
lin pot1to19 d = ss ("mari" ++ d.s );
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = ss (d.s ++ "mari" );
|
||||
lin pot1plus d e = ss (d.s ++ "mari" ++ e.s ) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (((selsg d.s) ! d.size) ++ "pataka" ) ;
|
||||
lin pot2plus d e = ss (((selsg d.s) ! d.size) ++ "pataka" ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s };
|
||||
lin pot3 n = {s = (selsg n.s) ! n.size ++ "warangka" } ;
|
||||
lin pot3plus n m = {s = (selsg n.s) ! n.size ++ "warangka" ++ m.s} ;
|
||||
|
||||
oper selsg : Str -> Size => Str = \s -> table {sg => [] ; pl => s } ;
|
||||
71
grammars/numerals/old/maybrat.gf
Normal file
71
grammars/numerals/old/maybrat.gf
Normal file
@@ -0,0 +1,71 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str ; even20 : Even20 } ;
|
||||
|
||||
oper mk20Ten : Str -> Str -> Str -> LinDigit = \tri -> \t -> \h ->
|
||||
{ s = table {unit => tri ; unit2 => t ; twenty => "rae" ++ h } ;
|
||||
even20 = ten};
|
||||
|
||||
oper mkEven20 : Str -> Str -> Str -> LinDigit = \se -> \t -> \h ->
|
||||
{ s = table {unit => se ; unit2 => t ; twenty => "rae" ++ h } ;
|
||||
even20 = even};
|
||||
|
||||
oper na = {s = "N/A"} ;
|
||||
|
||||
param Even20 = ten | even ;
|
||||
param DForm = unit | unit2 | twenty ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = {s : Str } ;
|
||||
lincat Sub1000 = {s : Str } ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ;
|
||||
lin n2 = mkEven20 (variants{"ewok"; "eok"})
|
||||
("krem" ++ "ewok")
|
||||
("sait" ++ "yhai") ;
|
||||
lin n3 = mk20Ten "tuf"
|
||||
("krem" ++ "tuf")
|
||||
("sait" ++ "yhai") ;
|
||||
lin n4 = mkEven20 "tiet"
|
||||
("krem" ++ "tiet")
|
||||
("ewok" ++ "mhai") ;
|
||||
lin n5 = mk20Ten (variants {"mat" ; "temsau"})
|
||||
("sau" ++ "muf")
|
||||
("ewok" ++ "mhai") ;
|
||||
lin n6 = mkEven20 ("krem" ++ "sau")
|
||||
("sau" ++ "krem" ++ "sau")
|
||||
("tuf" ++ "mhai") ;
|
||||
lin n7 = mk20Ten ("krem" ++ "ewok")
|
||||
("sau" ++ "krem" ++ "ewok")
|
||||
("tuf" ++ "mhai") ;
|
||||
lin n8 = mkEven20 ("krem" ++ "tuf")
|
||||
("sau" ++ "krem" ++ "tuf")
|
||||
("tiet" ++ "mhai") ;
|
||||
lin n9 = mk20Ten ("krem" ++ "tiet")
|
||||
("sau" ++ "krem" ++ "tiet")
|
||||
("tiet" ++ "mhai") ;
|
||||
|
||||
lin pot01 =
|
||||
{s = table {unit => "sau" ; unit2 => "krem" ++ "sau" ; twenty => "dummy" } ;
|
||||
even20 = ten };
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = {s = "statem" } ;
|
||||
lin pot111 = {s = "oo" ++ "krem" ++ "sau" } ;
|
||||
lin pot1to19 d = {s = "oo" ++ d.s ! unit2 } ;
|
||||
lin pot0as1 n = {s = n.s ! unit} ;
|
||||
lin pot1 d =
|
||||
{s = table {even => d.s ! twenty ;
|
||||
ten => (d.s ! twenty) ++ "statem"} ! d.even20} ;
|
||||
lin pot1plus d e =
|
||||
{s = table {even => d.s ! twenty ++ e.s ! unit ;
|
||||
ten => (d.s ! twenty) ++ (e.s ! unit2)} ! d.even20} ;
|
||||
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = na;
|
||||
lin pot2plus d e = na;
|
||||
lin pot2as3 n = n ;
|
||||
lin pot3 n = na ;
|
||||
lin pot3plus n m = na ;
|
||||
53
grammars/numerals/old/miya.gf
Normal file
53
grammars/numerals/old/miya.gf
Normal file
@@ -0,0 +1,53 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param Size = sg | pl ;
|
||||
param DForm = unit | acc ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str ; size : Size } ;
|
||||
oper Form = {s : Str ; size : Size } ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = Form ;
|
||||
lincat Sub1000 = Form ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ; -- TODO: Encoding
|
||||
|
||||
oper mkNum : Str -> Str -> LinDigit = \mbili -> \lama ->
|
||||
{s = table {unit => mbili ; acc => lama }; size = pl };
|
||||
|
||||
-- lin n1 = mkNum "wút`&" ;
|
||||
lin n2 = mkNum "ts`&r" "ts'&r";
|
||||
lin n3 = mkNum "kìdi" "kídì" ;
|
||||
lin n4 = mkNum "f`&d>&" "f'&d>&";
|
||||
lin n5 = mkNum "vàatl&" "vaatl&";
|
||||
lin n6 = mkNum "màaha" "máahà";
|
||||
lin n7 = mkNum "màats&r" "máats`&r";
|
||||
lin n8 = mkNum "f´&rf´&d>&" "f`&rf´&d>&" ;
|
||||
lin n9 = mkNum "kùciya" "kúcìya";
|
||||
|
||||
oper ss : Str -> Form = \s1 -> {s = s1 ; size = pl} ;
|
||||
oper behan = "bèh&n" ;
|
||||
oper enaa = "'`&náa" ;
|
||||
|
||||
lin pot01 =
|
||||
{s = table {unit => "wút`&" ; acc => "wut'&"}; size = sg };
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss "d'&rb>itim" ;
|
||||
lin pot111 = ss (variants {behan ++ "wut'&";"d'&rb>itim" ++ behan ++ "wut'&"});
|
||||
lin pot1to19 d = ss (variants {behan ++ (d.s ! acc); "d'&rb>itim" ++ behan ++ d.s ! acc}) ;
|
||||
lin pot0as1 n = {s = n.s ! unit ; size = n.size } ;
|
||||
lin pot1 d = ss ("díb>i" ++ d.s ! unit) ;
|
||||
lin pot1plus d e = ss ("díb>i" ++ d.s ! unit ++ behan ++ e.s ! acc) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss ("d>àriy" ++ selsg d.size (d.s ! unit));
|
||||
lin pot2plus d e = ss ("d>àriy" ++ (selsg d.size (d.s ! unit)) ++ enaa ++ e.s);
|
||||
lin pot2as3 n = {s = n.s } ;
|
||||
lin pot3 n = {s = "d'&bu" ++ (selsg n.size n.s)} ;
|
||||
lin pot3plus n m = {s = "d'&bu" ++ (selsg n.size n.s) ++ enaa ++ m.s} ;
|
||||
|
||||
oper selsg : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {pl => attr ; sg => variants {[] ; attr} } ! sz ;
|
||||
|
||||
51
grammars/numerals/old/mkAll.gfs
Normal file
51
grammars/numerals/old/mkAll.gfs
Normal file
@@ -0,0 +1,51 @@
|
||||
i -old -abs=Nums -cnc=Decimal numerals.Dec.gf
|
||||
i -old -abs=Nums -cnc=Amharic amharic.gf
|
||||
i -old -abs=Nums -cnc=Basque basque.gf
|
||||
--i -old -abs=Nums biblical_hebrew.gf
|
||||
i -old -abs=Nums -cnc=ArabicClassical classical_arabic.gf
|
||||
i -old -abs=Nums -cnc=Greek classical_greek.gf
|
||||
i -old -abs=Nums -cnc=Croatian croatian.gf
|
||||
i -old -abs=Nums -cnc=Geez geez.gf
|
||||
i -old -abs=Nums -cnc=Hindi hindi.gf
|
||||
i -old -abs=Nums -cnc=Hungarian hungarian.gf
|
||||
i -old -abs=Nums -cnc=Icelandic icelandic.gf
|
||||
i -old -abs=Nums -cnc=Irish irish.gf
|
||||
i -old -abs=Nums -cnc=Italian italian.gf
|
||||
i -old -abs=Nums -cnc=Japanese japanese.gf
|
||||
i -old -abs=Nums -cnc=Khowar khowar.gf
|
||||
i -old -abs=Nums -cnc=Korean korean.gf
|
||||
i -old -abs=Nums -cnc=Kulung kulung.gf
|
||||
i -old -abs=Nums -cnc=GreekModern modern_greek.gf
|
||||
i -old -abs=Nums -cnc=Mongolian mongolian.gf
|
||||
i -old -abs=Nums -cnc=ArabicModern numerals.Ara.gf
|
||||
i -old -abs=Nums -cnc=Hebrew numerals.Heb.gf
|
||||
--i -old -abs=Nums -cnc=Chinese numerals.ChiU.gf
|
||||
i -old -abs=Nums -cnc=Danish numerals.Dan.gf
|
||||
i -old -abs=Nums -cnc=German numerals.Deu.gf
|
||||
i -old -abs=Nums -cnc=English numerals.Eng.gf
|
||||
i -old -abs=Nums -cnc=French numerals.Fra.gf
|
||||
i -old -abs=Nums -cnc=Malay numerals.Malay.gf
|
||||
i -old -abs=Nums -cnc=Dutch numerals.Ned.gf
|
||||
i -old -abs=Nums -cnc=NorwegianBok numerals.NorB.gf
|
||||
i -old -abs=Nums -cnc=Russian numerals.Rus.gf
|
||||
i -old -abs=Nums -cnc=Finnish numerals.Suo.gf
|
||||
i -old -abs=Nums -cnc=Swedish numerals.Swe.gf
|
||||
i -old -abs=Nums -cnc=Tampere numerals.Tam.gf
|
||||
i -old -abs=Nums -cnc=OldChurchSlavonic old_church_slavonic.gf
|
||||
i -old -abs=Nums -cnc=Pashto pashto.gf
|
||||
i -old -abs=Nums -cnc=Polish polish.gf
|
||||
i -old -abs=Nums -cnc=Portuguese portuguese.gf
|
||||
i -old -abs=Nums -cnc=Quechua quechua.gf
|
||||
i -old -abs=Nums -cnc=Romanian romanian.gf
|
||||
i -old -abs=Nums -cnc=Sanskrit sanskrit.gf
|
||||
i -old -abs=Nums -cnc=Slovak slovak.gf
|
||||
i -old -abs=Nums -cnc=Sorani sorani.gf
|
||||
i -old -abs=Nums -cnc=Spanish spanish.gf
|
||||
i -old -abs=Nums -cnc=FrenchSwiss swiss_french.gf
|
||||
i -old -abs=Nums -cnc=Tamil tamil.gf
|
||||
i -old -abs=Nums -cnc=Tibetan tibetan.gf
|
||||
i -old -abs=Nums -cnc=Totonac totonac.gf
|
||||
i -old -abs=Nums -cnc=Turkish turkish.gf
|
||||
s
|
||||
--ts -lang -f
|
||||
pm | wf numerals.gfcm
|
||||
67
grammars/numerals/old/nenets.gf
Normal file
67
grammars/numerals/old/nenets.gf
Normal file
@@ -0,0 +1,67 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
-- #n-
|
||||
-- #t-
|
||||
-- #l-
|
||||
-- #s' with , ontop of s
|
||||
-- #N for n with a thing on the right leg i.e IPA [ng]
|
||||
-- #|~ a vertical tilde in thge top right corner
|
||||
|
||||
param DForm = unit | teen ;
|
||||
param Size = sg | nine | pl ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str ; size : Size } ;
|
||||
oper LinS100 = {s : Str ; size : Size} ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = LinS100 ;
|
||||
lincat Sub1000 = LinS100 ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s } ; -- TODO Encoding
|
||||
|
||||
oper mkNum : Str -> Str -> LinDigit =
|
||||
\u -> \t -> {s = table {unit => u ; teen => t } ; size = pl} ;
|
||||
|
||||
lin n2 = mkNum (variants {"side"; "sidea"}) "sidejaNan-â|~" ;
|
||||
lin n3 = mkNum (variants {"n-ahar" ; "nâr"}) "n-aharaNan-â|~" ;
|
||||
lin n4 = mkNum (variants {"t-êt" ; "t-iet" ; "tiet"}) "t-êtaNan-â|~" ;
|
||||
lin n5 = mkNum (variants {"saml-aN" ; "sambl-aN" ; "sambel-ank" })
|
||||
"saml-an-aNan-â|~";
|
||||
lin n6 = mkNum "mat'" "mat-aNan-â|~";
|
||||
lin n7 = mkNum (variants {"siu" ; "s'eu"}) "siujaNan-â|~" ;
|
||||
lin n8 = mkNum "sidend-êt" "sidend-êtaNan-â|~" ;
|
||||
lin n9 = {s = table {unit => variants {"hâsawaju'" ; "habeiju'"} ;
|
||||
teen => "hâsawajujaNan-â|~" } ;
|
||||
size = nine} ;
|
||||
|
||||
oper ss : Str -> LinS100 = \s1 -> {s = s1 ; size = pl} ;
|
||||
|
||||
lin pot01 =
|
||||
{s = table {unit => variants {"~ob" ; "~opoi" } ; _ => "dummy" }; size = sg};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss (variants {"ju'" ; "lûcaju'" ; "lûsaju'" }) ;
|
||||
lin pot111 = ss (variants {"~objaNan-â|~"; "~objaNn-â" ; "~objaNa"}) ;
|
||||
lin pot1to19 d = ss (d.s ! teen) ;
|
||||
lin pot0as1 n = {s = n.s ! unit ; size = n.size} ;
|
||||
lin pot1 d = ss (ifnine d.size (d.s ! unit)) ;
|
||||
lin pot1plus d e = ss ((ifnine d.size (d.s ! unit)) ++ (e.s ! unit)) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (mkjur d.size (d.s ! unit)) ;
|
||||
lin pot2plus d e = ss ((mkjur d.size (d.s ! unit)) ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s } ;
|
||||
lin pot3 n = {s = mkjuonar n.size n.s } ;
|
||||
lin pot3plus n m = {s = (mkjuonar n.size n.s) ++ m.s } ;
|
||||
|
||||
oper mkjuonar : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {nine => attr ++ "juonar" ;
|
||||
sg => variants {"juonar" ; "jônar" ; "ju" ++ "jur"} ;
|
||||
pl => attr ++ "juonar" } ! sz ;
|
||||
|
||||
oper mkjur : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {sg => "jur" ; _ => attr ++ "jur" } ! sz ;
|
||||
|
||||
oper ifnine : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {nine => "hâsawajur" ; _ => attr ++ "ju'" } ! sz ;
|
||||
63
grammars/numerals/old/sango.gf
Normal file
63
grammars/numerals/old/sango.gf
Normal file
@@ -0,0 +1,63 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param Size = sg | pl | over10;
|
||||
|
||||
oper Form = {s : Str ; size : Size } ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = Form ;
|
||||
lincat Sub10 = Form ;
|
||||
lincat Sub100 = Form ;
|
||||
lincat Sub1000 = Form ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ; -- TODO: Encoding
|
||||
|
||||
oper mkNum : Str -> Form = \mbili ->
|
||||
{s = mbili ; size = pl };
|
||||
|
||||
-- O IPA for o in cod
|
||||
-- Ó
|
||||
|
||||
-- lin n1 = mkNum "ÓkO" ;
|
||||
lin n2 = mkNum "óse" ;
|
||||
lin n3 = mkNum "otá" ;
|
||||
lin n4 = mkNum "osió" ;
|
||||
lin n5 = mkNum "ukú" ;
|
||||
lin n6 = mkNum "omaná" ;
|
||||
lin n7 = mkNum "mbásámbárá" ;
|
||||
lin n8 = mkNum "miombe" ;
|
||||
lin n9 = mkNum "ngombáyá" ;
|
||||
|
||||
oper nandoni : Str = ("na" ++ variants {"ndó" ++ "ní" ; []}) ;
|
||||
|
||||
oper ss : Str -> Form = \s1 -> {s = s1 ; size = over10} ;
|
||||
|
||||
lin pot01 = {s = "ÓkO" ; size = sg };
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = ss ("bale" ++ "ÓkO");
|
||||
lin pot111 = ss ("bale" ++ "ÓkO" ++ nandoni ++ "ÓkO");
|
||||
lin pot1to19 d = ss ("bale" ++ "ÓkO" ++ nandoni ++ d.s);
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = ss ("bale" ++ d.s ) ;
|
||||
lin pot1plus d e = ss ("bale" ++ d.s ++ nandoni ++ e.s ) ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = ss (mkng d.size d.s) ;
|
||||
lin pot2plus d e = ss ((mkng d.size d.s) ++ nandoni ++ e.s) ;
|
||||
lin pot2as3 n = {s = n.s } ;
|
||||
lin pot3 n = {s = mktau n.size n.s } ;
|
||||
lin pot3plus n m = {s = mktau n.size (n.s ++ nandoni ++ m.s) } ;
|
||||
|
||||
oper mkng : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {pl => "ngbangbu" ++ attr ;
|
||||
over10 => "dummy" ;
|
||||
sg => variants {"ngbangbu" ++ "ÓkO"; "ngbangbu" }} ! sz ;
|
||||
|
||||
oper mktau : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {pl => "ngbangbu" ++ "bale" ++ attr ;
|
||||
over10 => "N/A" ;
|
||||
sg => variants {"ngbangbu" ++ "bale"; "kutu"} ++ attr} ! sz ;
|
||||
|
||||
|
||||
|
||||
|
||||
41
grammars/numerals/old/tukang_besi.gf
Normal file
41
grammars/numerals/old/tukang_besi.gf
Normal file
@@ -0,0 +1,41 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
param DForm = u | v ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str } ;
|
||||
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = LinDigit ;
|
||||
lincat Sub1000 = LinDigit ;
|
||||
|
||||
oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ;
|
||||
|
||||
oper mkNum : Str -> LinDigit = \a -> {s = table {_ => a}} ;
|
||||
oper mkNum2 : Str -> Str -> LinDigit = \a -> \b -> {s = table {u => a ; v => b}} ;
|
||||
|
||||
lin num x = x ;
|
||||
-- lin n1 mkNum "sa'asa" ;
|
||||
lin n2 = mkNum "dua" ;
|
||||
lin n3 = mkNum "tolu" ;
|
||||
lin n4 = mkNum2 "gana" "hato";
|
||||
lin n5 = mkNum "lima" ;
|
||||
lin n6 = mkNum2 "no'o" "nomo" ;
|
||||
lin n7 = mkNum2 "pitu" "hitu" ;
|
||||
lin n8 = mkNum "alu" ;
|
||||
lin n9 = mkNum "sia" ;
|
||||
|
||||
lin pot01 = mkNum2 "sa'asa" "sa" ;
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = {s = table {_ => "ompulu" }};
|
||||
lin pot111 = {s = table {u => "ompulu" ++ "sa'asa" ; v => "ompulu" ++ "sa"}} ;
|
||||
lin pot1to19 d = {s = table {f => "ompulu" ++ d.s ! f}} ;
|
||||
lin pot0as1 n = n ;
|
||||
lin pot1 d = {s = table {_ => bind (d.s ! v) "hulu" }} ;
|
||||
lin pot1plus d e = {s = table {f => (bind (d.s ! v) "hulu") ++ e.s ! f}} ;
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = {s = table {_ => bind (d.s ! v) "hatu" }} ;
|
||||
lin pot2plus d e = {s = table {f => (bind (d.s ! v) "hatu") ++ e.s ! f}} ;
|
||||
lin pot2as3 n = {s = n.s ! u};
|
||||
lin pot3 n = {s = bind (n.s ! v) "riwu" } ;
|
||||
lin pot3plus n m = {s = (bind (n.s ! v) "riwu") ++ m.s ! u } ;
|
||||
71
grammars/numerals/old/welsh.gf
Normal file
71
grammars/numerals/old/welsh.gf
Normal file
@@ -0,0 +1,71 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
-- The neo-base-10 system dauddeg, trideg, pedwardeg, pumdeg/hanner cant, chwedeg, saithdeg, wythdeg, nawdeg is
|
||||
-- implemented as the second variant as it should be
|
||||
|
||||
oper LinDigit = {s : DForm => Str ; even20 : Even20 ; size : Size} ;
|
||||
oper LinSub100 = {s : Str ; size : Size} ;
|
||||
|
||||
oper mk20Ten : Str -> Str -> Str -> Str -> Size -> LinDigit =
|
||||
\tri -> \trideg -> \fiche -> \triarddeg -> \sz ->
|
||||
{ s = table {unit => tri ; twenty => fiche ; teen => triarddeg ; ten => trideg} ; even20 = odd ; size = sz} ;
|
||||
|
||||
oper mkEven20 : Str -> Str -> Str -> Str -> Size -> LinDigit =
|
||||
\tri -> \trideg -> \fiche -> \triarddeg -> \sz ->
|
||||
{ s = table {unit => tri ; twenty => fiche ; teen => triarddeg ; ten => trideg} ; even20 = even ; size = sz} ;
|
||||
|
||||
param Even20 = odd | even ;
|
||||
param DForm = unit | ten | twenty | teen ;
|
||||
param Size = sg | mutation | am | pl | five | overten;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = LinSub100 ;
|
||||
lincat Sub1000 = LinSub100 ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ;
|
||||
lin n2 = mkEven20 "dau" "dauddeg" "hugain" "deuddeg" mutation ;
|
||||
lin n3 = mk20Ten "tri" "trideg" "hugain" ("tri" ++ "ar" ++ "deg") am ;
|
||||
lin n4 = mkEven20 "pedwar" "pedwardeg" "deugain" ("pedwar" ++ "ar" ++ "ddeg") pl ;
|
||||
lin n5 = mk20Ten ("pum" + p) "pumdeg" "deugain" "pymtheg" five ;
|
||||
lin n6 = mkEven20 ("chwe" + ch) "chwedeg" "trigain" ("un" ++ "ar" ++ "bymtheg") am ;
|
||||
lin n7 = mk20Ten "saith" "saithdeg" "trigain" ("dau" ++ "ar" ++ "bymtheg") pl ;
|
||||
lin n8 = mkEven20 "wyth" "wythdeg" ("pedwar" ++ "ugain") "deunaw" pl ;
|
||||
lin n9 = mk20Ten "naw" "nawdeg" ("pedwar" ++ "ugain") ("pedwar" ++ "ar" ++ "bymtheg") pl ;
|
||||
oper AR : Str = pre {"ar" ; "a" / strs {"d"} } ;
|
||||
oper AG : Str = pre {"a" ; "ag" / strs {"a" ; "u" ; "i" ; "e" ; "o" ; "w"} } ; -- before vowel
|
||||
oper ng : Str = pre {"g" ; "ng" / strs {"m"} } ;
|
||||
oper t : Str = pre {[] ; "t" / strs {[]}} ;
|
||||
oper ch : Str = pre {[] ; "ch" / strs{[]}} ;
|
||||
oper p : Str = pre {[] ; "p" / strs{[]}} ;
|
||||
|
||||
oper mkR : Str -> LinSub100 = \s1 -> {s = s1 ; size = overten } ;
|
||||
oper mkR2 : Str -> Size -> LinSub100 = \s1 -> \sz -> {s = s1 ; size = table {mutation => mutation ; am => am ; _ => overten} ! sz } ;
|
||||
|
||||
lin pot01 =
|
||||
{s = table {unit => "un" ; _ => "dummy"} ; even20 = odd ; size = sg};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = {s = "de" + ng ; size = pl} ;
|
||||
lin pot111 = mkR (variants {"un" ++ "ar" ++ "ddeg" ; "undeg" ++ "un"}) ;
|
||||
lin pot1to19 d = mkR (variants {d.s ! teen ; "undeg" ++ d.s ! unit}) ;
|
||||
lin pot0as1 n = {s = n.s ! unit ; size = n.size} ;
|
||||
lin pot1 d = table {mutation => mkR (variants {"ugain" ; "dauddeg" }) ;
|
||||
five => mkR (variants {"hanner" ++ "cant" ; "deg" ++ "a" + "deugain" ; "pumdeg"}) ;
|
||||
_ => mkR (variants { table {even => d.s ! twenty ; odd => "deg" ++ AR ++ d.s ! twenty} ! d.even20 ; d.s ! ten}) } ! d.size ;
|
||||
lin pot1plus d e = mkR2 (variants { table {even => e.s ! unit ++ AR ++ d.s ! twenty ; odd => e.s ! teen ++ AR ++ d.s ! twenty} ! d.even20 ; d.s ! ten}) e.size ; -- hugain
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = mkR ((CANT (d.s ! unit)) ! d.size) ;
|
||||
lin pot2plus d e = mkR2 (((CANT (d.s ! unit)) ! d.size) ++ (maybeAG ! e.size) ++ e.s) e.size;
|
||||
lin pot2as3 n =
|
||||
{s = n.s } ;
|
||||
lin pot3 n =
|
||||
{s = (MIL n.s) ! n.size } ;
|
||||
lin pot3plus n m =
|
||||
{s = (MIL n.s) ! n.size ++ m.s } ;
|
||||
|
||||
oper maybeAG : Size => Str = (table {overten => [] ; _ => AG} );
|
||||
oper CANT : Str -> Size => Str = \s1 -> table {sg => "can" + t ; mutation => s1 ++ "gan" + t; am => s1 ++ "chan" + t ; _ => s1 ++ "can" + t} ;
|
||||
oper MIL : Str -> Size => Str = \s1 -> table {sg => "mil" ; mutation => s1 ++ "fil" ; _ => s1 ++ "mil" } ;
|
||||
|
||||
62
grammars/numerals/old/yasin_burushaski.gf
Normal file
62
grammars/numerals/old/yasin_burushaski.gf
Normal file
@@ -0,0 +1,62 @@
|
||||
include numerals.Abs.gf ;
|
||||
|
||||
oper LinDigit = {s : DForm => Str ; even20 : Even20 ; size : Size} ;
|
||||
|
||||
oper mk20Ten : Str -> Str -> LinDigit = \tri -> \tw ->
|
||||
{s = table {unit => tri ; teen => "turma-" + tri ; twenty => tw+"-áltar"} ;
|
||||
even20 = ten ; size = pl} ;
|
||||
|
||||
oper mkEven20 : Str -> Str -> LinDigit = \tri -> \tw ->
|
||||
{s = table {unit => tri ; teen => "turma-" + tri ; twenty => tw+"-áltar"} ;
|
||||
even20 = even ; size = pl} ;
|
||||
|
||||
param Even20 = ten | even ;
|
||||
param DForm = unit | teen | twenty ;
|
||||
param Size = sg | pl ;
|
||||
|
||||
lincat Numeral = {s : Str} ;
|
||||
lincat Digit = LinDigit ;
|
||||
lincat Sub10 = LinDigit ;
|
||||
lincat Sub100 = {s : Str ; size : Size} ;
|
||||
lincat Sub1000 = {s : Str ; size : Size } ;
|
||||
lincat Sub1000000 = {s : Str} ;
|
||||
lin num x0 =
|
||||
{s = x0.s} ;
|
||||
lin n2 = {s = table {unit => "altó" ; teen => "turma-" + "altó" ; twenty => "áltar" } ; even20 = even ; size = pl} ;
|
||||
lin n3 = {s = table {unit => "iskí" ; teen => "turma-" + "iskí" ; twenty => "áltar" } ; even20 = ten ; size = pl} ;
|
||||
lin n4 = mkEven20 "wálte" "altó";
|
||||
lin n5 = mk20Ten "cendí" "altó";
|
||||
lin n6 = mkEven20 "bis'índe" "iskí" ;
|
||||
lin n7 = mk20Ten "thalé" "iskí";
|
||||
lin n8 = mkEven20 "altámbe" "wálte";
|
||||
lin n9 = mk20Ten "hutí" "wálte";
|
||||
|
||||
lin pot01 =
|
||||
{s = table {unit => "hek" ; teen => "turma-" + "hék" ; twenty => []} ; even20 = ten ; size = sg};
|
||||
lin pot0 d = d ;
|
||||
lin pot110 = {s = "tórum" ; size = pl} ;
|
||||
lin pot111 = {s = "turma-" + "hék" ; size = pl} ;
|
||||
lin pot1to19 d = {s = d.s ! teen ; size = pl} ;
|
||||
lin pot0as1 n = {s = n.s ! unit ; size = n.size} ;
|
||||
lin pot1 d =
|
||||
{s = table {even => d.s ! twenty ;
|
||||
ten => d.s ! twenty ++ "tórum"} ! d.even20 ;
|
||||
size = pl} ;
|
||||
lin pot1plus d e =
|
||||
{s = table {even => d.s ! twenty ++ e.s ! unit;
|
||||
ten => d.s ! twenty ++ e.s ! teen} ! (d.even20) ;
|
||||
size = pl} ;
|
||||
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 d = {s = (selsg d.size (d.s ! unit)) ++ "tha" ; size = pl} ;
|
||||
lin pot2plus d e =
|
||||
{s = (selsg d.size (d.s ! unit)) ++ "tha" ++ e.s ; size = pl} ;
|
||||
lin pot2as3 n =
|
||||
{s = n.s } ;
|
||||
lin pot3 n =
|
||||
{s = selsg n.size n.s ++ "hazár"} ;
|
||||
lin pot3plus n m =
|
||||
{s = selsg n.size n.s ++ "hazár" ++ m.s } ;
|
||||
|
||||
oper selsg : Size -> Str -> Str = \sz -> \attr ->
|
||||
table {sg => [] ; _ => attr} ! sz ;
|
||||
Reference in New Issue
Block a user