diff --git a/examples/numerals/albanian.gf b/examples/numerals/albanian.gf index dfe0e9f82..63c3f518f 100644 --- a/examples/numerals/albanian.gf +++ b/examples/numerals/albanian.gf @@ -7,10 +7,12 @@ param DForm = unit | teen | ten ; oper LinDigit = {s : DForm => Str }; oper LinSub100 = {s : Str } ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = LinSub100 ; lincat Sub1000 = LinSub100 ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> LinDigit = \tri -> { s = table {unit => tri ; teen => tri + "mbë" + "dhjetë" ; ten => tri + "dhjetë" }}; diff --git a/examples/numerals/bearlake_slave.gf b/examples/numerals/bearlake_slave.gf index 32329bcf8..ddfb14271 100644 --- a/examples/numerals/bearlake_slave.gf +++ b/examples/numerals/bearlake_slave.gf @@ -4,10 +4,12 @@ param DForm = unit | hundred ; oper LinDigit = {s : Str } ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = {s : Str } ; lincat Sub1000 = {s : Str } ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> LinDigit = \two -> {s = two } ; diff --git a/examples/numerals/bulgarian.gf b/examples/numerals/bulgarian.gf index 8dbf81870..6d17e85b6 100644 --- a/examples/numerals/bulgarian.gf +++ b/examples/numerals/bulgarian.gf @@ -11,10 +11,12 @@ param DForm = unit | teen | ten | hundred ; oper LinDigit = {s : DForm => Str ; size : Size } ; -lincat Digit = LinDigit ; -lincat Sub10 = LinDigit ; +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 } ; oper mkNum : Str -> Str -> Str -> LinDigit = \tri -> \trijset -> \trista -> { s = table {unit => tri ; teen => variants {tri + "nadeset" ; tri + "najset" }; ten => trijset ; hund => trista} ; size = below10}; diff --git a/examples/numerals/croatian.gf b/examples/numerals/croatian.gf index bcc3d50c4..85bd4fe6b 100644 --- a/examples/numerals/croatian.gf +++ b/examples/numerals/croatian.gf @@ -9,10 +9,13 @@ param DForm = unit | teen | ten | hund ; param ThForm = onlyone | lastone | twoorthreeorfour | fiveup ; oper LinDigit = {s : DForm => Str; o : ThForm ; t : ThForm } ; + +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = {s : DForm => Str; o : ThForm ; t : ThForm } ; lincat Sub100 = {s : Str; t : ThForm } ; lincat Sub1000 = {s : Str; t : ThForm } ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> Str -> ThForm -> LinDigit = \dwa -> \dwanascie -> \dwadziescia -> \dwiescie -> \thform -> diff --git a/examples/numerals/czech.gf b/examples/numerals/czech.gf index e80dab365..59f32efd2 100644 --- a/examples/numerals/czech.gf +++ b/examples/numerals/czech.gf @@ -8,10 +8,12 @@ oper bind : Str -> Str -> Str = \s1 -> \s2 -> s1 ++ s2 ; param Size = sg | twothreefour | fiveup ; param DForm = unit | teen | ten | hundred ; +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str ; size : Size} ; lincat Sub10 = {s : DForm => Str ; size : Size} ; lincat Sub100 = {s : Str; size : Size } ; lincat Sub1000 = {s : Str; size : Size } ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> Str -> Size -> Lin Digit = \dva -> \dvanast -> \dvadsat -> \dveste -> \sz -> diff --git a/examples/numerals/decimal.gf b/examples/numerals/decimal.gf index c27485373..44076fea0 100644 --- a/examples/numerals/decimal.gf +++ b/examples/numerals/decimal.gf @@ -4,6 +4,9 @@ flags lexer=chars ; unlexer=concat ; param Zeros = noz | zz ; +lincat Numeral = { s : Str } ; +lincat Digit = { s : Str } ; +lincat Sub10 = { s : Str } ; lincat Sub100 = {s : Zeros => Str} ; lincat Sub1000 = {s : Zeros => Str} ; lincat Sub1000000 = {s : Zeros => Str} ; diff --git a/examples/numerals/english.gf b/examples/numerals/english.gf index d4aa3e3de..270b0c9d6 100644 --- a/examples/numerals/english.gf +++ b/examples/numerals/english.gf @@ -2,8 +2,12 @@ include numerals.Abs.gf ; param DForm = unit | teen | ten ; +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str} ; lincat Sub10 = {s : DForm => Str} ; +lincat Sub100 = { s : Str } ; +lincat Sub1000 = { s : Str } ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> Lin Digit = \two -> \twelve -> \twenty -> diff --git a/examples/numerals/greek_classical.gf b/examples/numerals/greek_classical.gf index 28036fed9..cdfb115ec 100644 --- a/examples/numerals/greek_classical.gf +++ b/examples/numerals/greek_classical.gf @@ -17,6 +17,7 @@ lincat Numeral = {s : Str} ; oper LinDigit = {s : DForm => Str} ; oper LinSub1000 = {s : InterData => Str ; size : Size} ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = {s : DForm => Str ; size : Size} ; diff --git a/examples/numerals/guahibo.gf b/examples/numerals/guahibo.gf index d9cb69ebc..eace4ed42 100644 --- a/examples/numerals/guahibo.gf +++ b/examples/numerals/guahibo.gf @@ -6,10 +6,12 @@ param Size = sg | pl ; oper All = {s : Str ; size : Size}; +lincat Numeral = { s : Str } ; lincat Digit = All ; lincat Sub10 = All ; lincat Sub100 = All ; lincat Sub1000 = All ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> All = \tri -> { s = tri ; size = pl}; diff --git a/examples/numerals/guarani.gf b/examples/numerals/guarani.gf index 7fbfa5d9b..9df3ce70e 100644 --- a/examples/numerals/guarani.gf +++ b/examples/numerals/guarani.gf @@ -6,10 +6,12 @@ param Size = sg | pl ; oper All = {s : Str ; s2 : Str ; size : Size}; +lincat Numeral = { s : Str } ; lincat Digit = All ; lincat Sub10 = All ; lincat Sub100 = {s : Str ; size : Size} ; lincat Sub1000 = {s : Str ; size : Size} ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> All = \tri -> { s = tri ; s2 = "kua" + tri ; size = pl}; diff --git a/examples/numerals/hindi.gf b/examples/numerals/hindi.gf index baff512de..0b8d24ee9 100644 --- a/examples/numerals/hindi.gf +++ b/examples/numerals/hindi.gf @@ -6,10 +6,13 @@ param DSize = sg | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 ; param Size = sing | less100 | more100 ; oper LinDigit = {s : DForm => Str ; size : DSize} ; + +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = {s : DForm => Str ; size : DSize} ; lincat Sub100 = {s : Str ; size : Size} ; lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ; +lincat Sub1000000 = { s : Str } ; lin num x0 = {s = "/&" ++ x0.s ++ "&/"} ; -- the Devana:gari environment diff --git a/examples/numerals/icelandic.gf b/examples/numerals/icelandic.gf index 1933f7332..37731783c 100644 --- a/examples/numerals/icelandic.gf +++ b/examples/numerals/icelandic.gf @@ -6,10 +6,12 @@ param Size = sg | less10 | pl ; oper LinDigit = {s : DForm => Str} ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = {s : DForm => Str ; size : Size} ; lincat Sub100 = {s : Gen => Str ; size : Size} ; lincat Sub1000 = {s : Gen => Str ; size : Size} ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> Str -> LinDigit = \two -> \twelve -> \twenty -> \tvo -> diff --git a/examples/numerals/italian.gf b/examples/numerals/italian.gf index 29e15cd7b..b2ca6be2c 100644 --- a/examples/numerals/italian.gf +++ b/examples/numerals/italian.gf @@ -4,6 +4,7 @@ param DForm = ental Pred | ton | tiotal ; param Num = sg | pl ; param Pred = pred | indip ; +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str} ; lincat Sub10 = {s : DForm => Str ; n : Num} ; lincat Sub100 = {s : Str ; n : Num} ; diff --git a/examples/numerals/kabardian.gf b/examples/numerals/kabardian.gf index e6716ca93..9acb469fe 100644 --- a/examples/numerals/kabardian.gf +++ b/examples/numerals/kabardian.gf @@ -14,10 +14,13 @@ param DForm = unit | unite | unitra | teen | ten | tenra | hund | thou; oper LinDigit = {s : DForm => Str }; oper LinS100 = {s : Str; s2 : Str } ; + +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = LinS100 ; lincat Sub1000 = LinS100 ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> LinDigit = \dwa -> {s = table {unit => dwa ; unite => dwa + "&" ; unitra => dwa + "&ra" ; diff --git a/examples/numerals/kambera.gf b/examples/numerals/kambera.gf index c42921b19..3e281a766 100644 --- a/examples/numerals/kambera.gf +++ b/examples/numerals/kambera.gf @@ -4,10 +4,12 @@ param Size = sg | two | 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 } ; oper mkNum : Str -> Form = \two -> {s = two ; size = pl} ; diff --git a/examples/numerals/khmer.gf b/examples/numerals/khmer.gf index b25895104..7a718b914 100644 --- a/examples/numerals/khmer.gf +++ b/examples/numerals/khmer.gf @@ -6,10 +6,12 @@ param Size = sg | pl ; oper LinDigit = {s : DForm => Str ; size : Size} ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = {s : Str ; s2 : Str ; size : Size} ; lincat Sub1000 = {s : Str ; s2 : Str ; size : Size} ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> LinDigit = \u -> \t -> {s = table {unit => u ; ten => t} ; size = pl} ; diff --git a/examples/numerals/kolyma_yukaghir.gf b/examples/numerals/kolyma_yukaghir.gf index b7cade9af..21deebe5c 100644 --- a/examples/numerals/kolyma_yukaghir.gf +++ b/examples/numerals/kolyma_yukaghir.gf @@ -6,10 +6,12 @@ param DForm = u | teen ; oper LinDigit = {s : DForm => Str } ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = {s : Str } ; lincat Sub1000 = {s : Str } ; +lincat Sub1000000 = { s : Str } ; oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ; diff --git a/examples/numerals/kulung.gf b/examples/numerals/kulung.gf index f5eda8634..3ae2db724 100644 --- a/examples/numerals/kulung.gf +++ b/examples/numerals/kulung.gf @@ -8,10 +8,12 @@ param Scale = reg | lakh ; -- Expanded in Jadranka Gvozdanovic' (ed.) Numeral Types and Changes -- Worldwide, 1999 +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str} ; lincat Sub10 = {s : DForm => Str ; size : Size} ; lincat Sub100 = {s : Str ; size : Size} ; -lincat Sub1000 = {s : Scale => Str ; size : Size} ; +lincat Sub1000 = {s : Scale => Str ; size : Size} +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> Str -> Lin Digit = \two -> \two2 -> \twenty -> \twenty2 -> diff --git a/examples/numerals/lalo.gf b/examples/numerals/lalo.gf index 853ac219a..21e9cb290 100644 --- a/examples/numerals/lalo.gf +++ b/examples/numerals/lalo.gf @@ -9,6 +9,7 @@ lincat Digit = {s : Str} ; lincat Sub10 = {s : Str} ; lincat Sub100 = LinS100 ; lincat Sub1000 = LinS100 ; +lincat Sub1000000 = { s : Str } ; -- TODO encoding diff --git a/examples/numerals/lamani.gf b/examples/numerals/lamani.gf index d295ebaa2..a627bb4c5 100644 --- a/examples/numerals/lamani.gf +++ b/examples/numerals/lamani.gf @@ -8,10 +8,12 @@ param Size = sg | two | five | seven | nine | e25 | e75 | e50s | e90s | other ; oper LinDigit = {s : DForm => Str ; s2 : Str ; size : Size} ; oper LinSub100 = {s : Str ; s2 : Str ; s3 : Str ; size : Size} ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = LinSub100 ; lincat Sub1000 = {s : Str ; s2 : Str } ; +lincat Sub1000000 = { s : Str } ; lin num x0 = {s = x0.s } ; diff --git a/examples/numerals/latvian.gf b/examples/numerals/latvian.gf index 68e2b382d..299ef0b0c 100644 --- a/examples/numerals/latvian.gf +++ b/examples/numerals/latvian.gf @@ -11,10 +11,12 @@ param DForm = unit | teen | ten | hundred ; oper LinDigit = {s : DForm => Str ; s2 : Str }; oper LinSub100 = {s : Str ; s2 : Str } ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = LinSub100 ; lincat Sub1000 = LinSub100 ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> LinDigit = \tri -> \tribase -> { s = table {unit => tri ; teen => tribase + "padsmit" ; ten => tribase + "desmit" ; hundred => variants {tribase + "simt" ; tri ++ "simti"} } ; s2 = tribase + "tu^kstos^" }; diff --git a/examples/numerals/lithuanian.gf b/examples/numerals/lithuanian.gf index 703d8ca0d..f2d4f5c61 100644 --- a/examples/numerals/lithuanian.gf +++ b/examples/numerals/lithuanian.gf @@ -15,10 +15,12 @@ param DForm = unit | teen | ten ; oper LinDigit = {s : DForm => Str ; size : Size }; oper LinSub100 = {s : Str ; size : Size } ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = LinSub100 ; lincat Sub1000 = LinSub100 ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> LinDigit = \tri -> \dvylika -> \tribase -> { s = table {unit => tri ; teen => dvylika ; ten => tribase + "des^imt" } ; size = pl}; diff --git a/examples/numerals/mapuche.gf b/examples/numerals/mapuche.gf index 390f87c73..84450daa2 100644 --- a/examples/numerals/mapuche.gf +++ b/examples/numerals/mapuche.gf @@ -4,10 +4,12 @@ param Size = sg | pl ; oper All = {s : Str ; size : Size}; +lincat Numeral = { s : Str } ; lincat Digit = All ; lincat Sub10 = All ; lincat Sub100 = All ; lincat Sub1000 = All ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> All = \tri -> { s = tri ; size = pl}; diff --git a/examples/numerals/margi.gf b/examples/numerals/margi.gf index 4043d4580..27a7f9377 100644 --- a/examples/numerals/margi.gf +++ b/examples/numerals/margi.gf @@ -5,6 +5,8 @@ param Size = sg | pl ; oper LinDigit = {s : DForm => Str ; size : Size} ; oper LinS100 = {s : Str ; s2 : Str ; size : Size} ; + +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = LinS100 ; diff --git a/examples/numerals/old_church_slavonic.gf b/examples/numerals/old_church_slavonic.gf index dff2f502a..6072bbec8 100644 --- a/examples/numerals/old_church_slavonic.gf +++ b/examples/numerals/old_church_slavonic.gf @@ -11,10 +11,12 @@ flags coding=OCScyrillic ; param Size = sg | dual | threefour | fiveup ; +lincat Numeral = { s : Str } ; lincat Digit = {s : Str ; s2 : Str ; size : Size } ; lincat Sub10 = {s : Str ; s2 : Str ; size : Size } ; lincat Sub100 = {s : Str ; s2 : Str ; size : Size } ; lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Size -> {s : Str ; s2 : Str ; size : Size} = \petI -> \sz -> { s = petI ; s2 = petI ; size = sz}; diff --git a/examples/numerals/pashto.gf b/examples/numerals/pashto.gf index 8a7c9051b..85239828a 100644 --- a/examples/numerals/pashto.gf +++ b/examples/numerals/pashto.gf @@ -17,10 +17,12 @@ param Size = sg | two | less100 | more100 ; -- [P] is a Ha with a hamza above -- [R] is an r with a ring below +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str ; size : Size} ; lincat Sub10 = {s : DForm => Str ; size : Size} ; lincat Sub100 = {s : Str ; size : Size} ; lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ; +lincat Sub1000000 = { s : Str } ; lin num x0 = {s = "/A" ++ x0.s ++ "A/"} ; -- the Extented-Arabic environment diff --git a/examples/numerals/polish.gf b/examples/numerals/polish.gf index 8ecc3839a..b5d57bc92 100644 --- a/examples/numerals/polish.gf +++ b/examples/numerals/polish.gf @@ -23,10 +23,13 @@ param DForm = unit | teen | ten | hund ; param ThForm = onlyone | lastone | twoorthreeorfour | fiveup ; oper LinDigit = {s : DForm => Str; o : ThForm ; t : ThForm } ; + +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = {s : DForm => Str; o : ThForm ; t : ThForm } ; lincat Sub100 = {s : Str; t : ThForm } ; lincat Sub1000 = {s : Str; t : ThForm } ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> Str -> ThForm -> LinDigit = \dwa -> \dwanascie -> \dwadziescia -> \dwiescie -> \thform -> diff --git a/examples/numerals/quechua.gf b/examples/numerals/quechua.gf index 768a5921a..cd6925159 100644 --- a/examples/numerals/quechua.gf +++ b/examples/numerals/quechua.gf @@ -6,11 +6,12 @@ param Size = sg | pl ; -- Quechua har no standard orthography so there are numerous spelling variants -- not considered here. - +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str ; size : Size} ; lincat Sub10 = {s : DForm => Str ; size : Size} ; lincat Sub100 = {s : Str ; size : Size} ; lincat Sub1000 = {s : Str ; size : Size} ; +lincat Sub1000000 = { s : Str } ; oper mkRegNum1 : Str -> Lin Digit = \juk -> diff --git a/examples/numerals/romanian.gf b/examples/numerals/romanian.gf index 92a8301ed..e339e0c1a 100644 --- a/examples/numerals/romanian.gf +++ b/examples/numerals/romanian.gf @@ -7,10 +7,12 @@ param DForm = unit | teen | ten | attr ; param MidForm = indep | det ; param Size = sg | less20 | pl ; +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str ; size : Size} ; lincat Sub10 = {s : DForm => Str ; size : Size} ; lincat Sub100 = {s : MidForm => Str ; size : Size} ; lincat Sub1000 = {s : MidForm => Str ; size : Size} ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> Lin Digit = \two -> \twelve -> \twenty -> mkNumSpc two twelve twenty two ; diff --git a/examples/numerals/sanskrit.gf b/examples/numerals/sanskrit.gf index f60507b30..532ac248d 100644 --- a/examples/numerals/sanskrit.gf +++ b/examples/numerals/sanskrit.gf @@ -27,10 +27,13 @@ oper LinDigit = {s : DForm => Str ; size : DSize} ; + +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = {s : DForm => Str ; size : DSize} ; lincat Sub100 = {s : Str ; s2 : Str ; size : Size} ; lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ; +lincat Sub1000000 = { s : Str } ; lin num x0 = {s = "/&" ++ x0.s ++ "&/"} ; -- the Devanagari environment diff --git a/examples/numerals/sorani.gf b/examples/numerals/sorani.gf index 72ce5ba91..ec29c0846 100644 --- a/examples/numerals/sorani.gf +++ b/examples/numerals/sorani.gf @@ -22,10 +22,12 @@ param Size = sg | less500 | fiveup | more500 ; -- [P] is a Ha with a hamza above -- [R] is an r with a ring below +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str ; size : Size} ; lincat Sub10 = {s : DForm => Str ; size : Size} ; lincat Sub100 = {s : Str ; size : Size} ; lincat Sub1000 = {s : Str ; s2 : Str ; size : Size} ; +lincat Sub1000000 = { s : Str } ; lin num x0 = {s = "/A" ++ x0.s ++ "A/"} ; -- the Arabic environment diff --git a/examples/numerals/stieng.gf b/examples/numerals/stieng.gf index 549e9bd3f..f03e6a0f6 100644 --- a/examples/numerals/stieng.gf +++ b/examples/numerals/stieng.gf @@ -4,10 +4,12 @@ param Size = sg | belowten | moreten ; oper LinDigit = {s : Str ; size : Size} ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = {s : Str ; s2 : Str ; size : Size} ; lincat Sub1000 = {s : Str ; s2 : Str ; size : Size} ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> LinDigit = \u -> {s = u ; size = belowten} ; diff --git a/examples/numerals/swedish.gf b/examples/numerals/swedish.gf index 41de7ab14..4d0796bef 100644 --- a/examples/numerals/swedish.gf +++ b/examples/numerals/swedish.gf @@ -2,9 +2,12 @@ include numerals.Abs.gf ; param DForm = ental | ton | tiotal ; -lincat - Digit = {s : DForm => Str} ; - Sub10 = {s : DForm => Str} ; +lincat Numeral = { s : Str } ; +lincat Digit = {s : DForm => Str} ; +lincat Sub10 = {s : DForm => Str} ; +lincat Sub100 = { s : Str } ; +lincat Sub1000 = { s : Str } ; +lincat Sub1000000 = { s : Str } ; oper mkTal : Str -> Str -> Str -> Lin Digit = \två, tolv, tjugo -> diff --git a/examples/numerals/tibetan.gf b/examples/numerals/tibetan.gf index d77f1bef6..2ca775b4d 100644 --- a/examples/numerals/tibetan.gf +++ b/examples/numerals/tibetan.gf @@ -10,10 +10,12 @@ param DForm = unit | teen | bform | ten | hundred | agg ; oper LinDigit = {s : DForm => Str} ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = {s : Str ; s2 : Str} ; lincat Sub1000 = {s : Str ; s2 : Str} ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Str -> Str -> LinDigit = \u -> \tn -> \b -> \t -> diff --git a/examples/numerals/tuda_daza.gf b/examples/numerals/tuda_daza.gf index 9d112fddf..334882ced 100644 --- a/examples/numerals/tuda_daza.gf +++ b/examples/numerals/tuda_daza.gf @@ -5,6 +5,8 @@ param Size = sg | sub10 | pl | e10; oper LinDigit = {s : DForm => Str ; s2 : Str ; size : Size} ; oper LinS100 = {s : Str ; s2 : Str ; size : Size} ; + +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = LinS100 ; diff --git a/examples/numerals/tukang_besi.gf b/examples/numerals/tukang_besi.gf index f07bdce33..d2b7c6f1c 100644 --- a/examples/numerals/tukang_besi.gf +++ b/examples/numerals/tukang_besi.gf @@ -4,10 +4,12 @@ param DForm = u | v ; oper LinDigit = {s : DForm => Str } ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = LinDigit ; lincat Sub1000 = LinDigit ; +lincat Sub1000000 = { s : Str } ; oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ; diff --git a/examples/numerals/turkish.gf b/examples/numerals/turkish.gf index f8fe734d8..ce391f13e 100644 --- a/examples/numerals/turkish.gf +++ b/examples/numerals/turkish.gf @@ -12,10 +12,12 @@ param Size = sg | pl ; -- The hundreds and trheir qualif can be written together e.g ikiyüz -- aswelll as ten + unit e.g yirmibir +lincat Numeral = { s : Str } ; lincat Digit = {s : DForm => Str } ; lincat Sub10 = {s : DForm => Str ; size : Size} ; lincat Sub100 = {s : Str ; size : Size } ; lincat Sub1000 = {s : Str ; size : Size } ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> Str -> Lin Digit = \iki -> \yirmi -> diff --git a/examples/numerals/zaiwa.gf b/examples/numerals/zaiwa.gf index 005a7038f..e40645175 100644 --- a/examples/numerals/zaiwa.gf +++ b/examples/numerals/zaiwa.gf @@ -4,10 +4,12 @@ param Size = sg | sub10 | pl ; oper LinDigit = {s : Str ; size : Size} ; +lincat Numeral = { s : Str } ; lincat Digit = LinDigit ; lincat Sub10 = LinDigit ; lincat Sub100 = {s : Str ; s2 : Str ; size : Size} ; lincat Sub1000 = {s : Str ; s2 : Str ; size : Size} ; +lincat Sub1000000 = { s : Str } ; oper mkNum : Str -> LinDigit = \u -> {s = u ; size = sub10} ;