Added all missing lincats in numerals grammars.

This commit is contained in:
bringert
2005-05-11 08:10:23 +00:00
parent c8de5fc0da
commit 9699fe1651
38 changed files with 88 additions and 7 deletions

View File

@@ -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ë" }};

View File

@@ -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 } ;

View File

@@ -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};

View File

@@ -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 ->

View File

@@ -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 ->

View File

@@ -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} ;

View File

@@ -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 ->

View File

@@ -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} ;

View File

@@ -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};

View File

@@ -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};

View File

@@ -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

View File

@@ -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 ->

View File

@@ -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} ;

View File

@@ -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" ;

View File

@@ -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} ;

View File

@@ -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} ;

View File

@@ -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 ;

View File

@@ -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 ->

View File

@@ -9,6 +9,7 @@ lincat Digit = {s : Str} ;
lincat Sub10 = {s : Str} ;
lincat Sub100 = LinS100 ;
lincat Sub1000 = LinS100 ;
lincat Sub1000000 = { s : Str } ;
-- TODO encoding

View File

@@ -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 } ;

View File

@@ -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^" };

View File

@@ -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};

View File

@@ -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};

View File

@@ -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 ;

View File

@@ -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};

View File

@@ -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

View File

@@ -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 ->

View File

@@ -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 ->

View File

@@ -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 ;

View File

@@ -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

View File

@@ -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

View File

@@ -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} ;

View File

@@ -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 ->

View File

@@ -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 ->

View File

@@ -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 ;

View File

@@ -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 ;

View File

@@ -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 ->

View File

@@ -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} ;