Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
108 lines (90 sloc) 5.05 KB
#include "symbols.fst"
% Numbers represented in text format has limited vocabulary because of obvious reason
% The lexicon for that is given below.
$half$ = അര <half>
$n1$ = ഒന്ന് | ഒന്നു്
$n0$ = പൂജ്യം <zero>
$n2-9$ = (രണ്ട്|രണ്ടു്|മൂന്ന്|മൂന്നു്|നാല്|നാലു്|അഞ്ച്|അഞ്ചു്|ആറ്|ആറു്|ഏഴ്|ഏഴു്|എട്ട്|എട്ടു്|ഒമ്പത്|ഒമ്പതു്)
% ones
$N1$ = ( $n1$ | $n2-9$ ) <ones>
$n10-90$ = {ഒന്ന് }: {പത്ത്} |\
{രണ്ട് } : {ഇരുപത്} |\
{മൂന്ന് } : {മുപ്പത്} |\
{നാല് } : {നാല്പത്} |\
{അഞ്ച് } : {അമ്പത്} |\
{ആറ് } : {അറുപത്} |\
{ഏഴ് } : {എഴുപത്} |\
{എട്ട് } : {എൺപത്} |\
{ഒമ്പത് } : {തൊണ്ണൂറ്}
$n11-19$ = { ഒന്ന് <tens> ഒന്ന്} : {പതിനൊന്ന്} |\
{ ഒന്ന് <tens> രണ്ട്} : {പന്ത്രണ്ട്} |\
{ ഒന്ന് <tens> മൂന്ന്} : {പതിമൂന്ന്} |\
{ ഒന്ന് <tens> നാല്} : {പതിനാല്} |\
{ ഒന്ന് <tens> അഞ്ച്} : {പതിനഞ്ച്} |\
{ ഒന്ന് <tens> ആറ്} : {പതിനാറ്} |\
{ ഒന്ന് <tens> ഏഴ്} : {പതിനേഴ്} |\
{ ഒന്ന് <tens> എട്ട്} : {പതിനെട്ട്} |\
{ ഒന്ന് <tens> ഒമ്പത്} : {പത്തൊമ്പത്}
$n20-90-compound$ = {രണ്ട് } : {ഇരുപത്ത[ി്]} |\
{മൂന്ന്} : {മുപ്പത്ത[ി്]} |\
{നാല്} : {നാല്പത്ത[ി്]} |\
{നാല്} : {നാൽപത്ത[ി്]} |\
{അഞ്ച്} : {അമ്പത്ത[ി്]} |\
{അഞ്ച്} : {അൻപത്ത[ി്]} |\
{ആറ്} : {അറുപത്ത[ി്]} |\
{ഏഴ്} : {എഴുപത്ത[ി്]} |\
{എട്ട്} : {എൺപത്ത[ി്]} |\
{എട്ട്} : {എമ്പത്ത[ി്]} |\
{ഒമ്പത്} : {തൊണ്ണൂറ്റ[ി്]}
% FIXME: The above rule can create നാല്പത്ത്മൂന്ന് നാല്പത്ത്നാല് for 3 and 4. Rest is fine.
% tens
$N10$ = ( $n10-90$ <tens> ) | \
( ( $n11-19$ <ones> ) | ( $n20-90-compound$ <tens> ) $N1$ )
% hundreds
$n100-900$ = {ഒന്ന്} : {നൂറ്} |\
{രണ്ട്} : {ഇരുന്നൂറ്} |\
{മൂന്ന്} : {മുന്നൂറ്} |\
{നാല്} : {നാനൂറ്} |\
{അഞ്ച്} : {അഞ്ഞൂറ്} |\
{ആറ്} : {അറുന്നൂറ്} |\
{ഏഴ്} : {എഴുന്നൂറ്} |\
{എട്ട്} : {എണ്ണൂറ്} |\
{ഒമ്പത്} : {തൊള്ളായിരം}
$n100-900-compound$ = {ഒന്ന്} : {നൂറ്റ[ി്]} |\
{ഒന്ന്} : {ഒരുനൂറ്റ[ി്]} |\
{രണ്ട്} : {ഇരുനൂറ്റ[ി്]} |\
{മൂന്ന്} : {മുന്നൂറ്റ[ി്]} |\
{നാല്} : {നാനൂറ്റ[ി്]} |\
{അഞ്ച്} : {അഞ്ഞൂറ്റ[ി്]} |\
{ആറ്} : {അറുനൂറ്റ[ി്]} |\
{ഏഴ്} : {എഴുനൂറ്റ[ി്]} |\
{എട്ട്} : {എണ്ണൂറ്റ[ി്]} |\
{ഒമ്പത്} : {തൊള്ളായിരത്ത[ി്]}
$N100$ = ( $n100-900$ <hundreds> ) |\
( $n100-900-compound$ <hundreds> ($N10$|$N1$) )
% thousands
$n1k$ = {} : {ആയിര} |\
{ ഒന്ന് } : {ഒരായിര} |\
{ മൂന്ന് } : {മുവ്വായിര} |\
{ അഞ്ച്} : {അയ്യായിര} |\
{ എട്ട് } : {എണ്ണായിര} |\
{ ഒന്ന് <tens>} : {പതിനായിര} |\
{ രണ്ട് <tens>} : {ഇരുപതിനായിര} |\
{ മൂന്ന് <tens>} : {മുപ്പതിനായിര} |\
{ നാല് <tens>} : {നാല്പതിനായിര} |\
{ അഞ്ച് <tens>} : {അമ്പതിനായിര} |\
{ ആറ് <tens>} : {അറുപതിനായിര} |\
{ ഏഴ് <tens>} : {എഴുപതിനായിര} |\
{ എട്ട് <tens>} : {എൺപതിനായിര}
$N1K$ = ( ( $N10$|$N1$ )? $n1k$ <>:) <thousands>
$n1k-compound$ = $n1k$ (<>:{ത്തി} | <>:{ത്ത്} )
$N1K-ones-tens-hundreds$ = ( $N10$|$N1$ )? $n1k-compound$ <thousands> ($N100$|$N10$|$N1$)
$N1K$ = $N1K$ | $N1K-ones-tens-hundreds$
$n1l$ = {} : {ലക്ഷം}
$n1l-compound$ = {} : {ലക്ഷത്ത[ി്]}
$N1L$ = (( $N1$|$N10$|$N100$|$N1K$ )? $n1l$ <lakhs>) |\
(( $N1$|$N10$|$N100$|$N1K$)? $n1l-compound$ <lakhs> ($N1K$|$N100$|$N10$|$N1$))
$n1c$ = {}:{കോടി}
$N1C$ = ( $N1$|$N10$|$N100$|$N1K$|$N1L$ )? $n1c$ <crores> ($N1L$|$N1K$|$N100$|$N10$|$N1$)?
$numbers$ = ( $n0$ | $N1$ | $N10$ | $N100$ | $N1K$ | $N1L$ | $N1C$ ) $half$?
<LB> $numbers$ <cardinal><RB>