metadata {

authority_id: bis
id: 1991
language: iso-639-2:mlm
source_script: Mlym
destination_script: Latn
name: Indian script code for information interchange (ISCII) -- Malayalam Romanization

#url:
creation_date: 1991
description: |
  IS 13194 (1991): Indian script code for information
  interchange - ISCII [LITD 20: Indian Language Technologies
  and Products]

notes:
  - |
    Exception: Anusvāra is transliterated by:

    a) ṅ before gutturals,
    b) ñ before palatals,
    c) ṇ before cerebrals,
    d) n before dentals, and
    e) m before labials.

}

tests {

test "സ്വപ്നയ്ക്കൊപ്പം ഹോട്ടലിൽ മന്ത്രിപുത്രൻ, ചിത്രങ്ങൾ; 4 കോടി കമ്മിഷനിലും പങ്കുപറ്റി", "svpnykkeāppṃ hōṭṭlil mntriputrṇ, citrṅṅḷ; 4 kōṭi kmmiṣniluṃ pṅkupṟṟi"
test "വിവാദങ്ങളിൽ മാപ്പില്ല, ആദ്യമായി ഐപിഎൽ കമന്ററിക്കില്ലാതെ മ‍ഞ്ജരേക്കര്‍; പുറത്ത് തന്നെ", "vivādṅṅḷil māppill, ādymāyi aipiel kmnṟṟikkillāte mñjrēkkr; puṟtt tnne"
test "പരമാവധി ഊറ്റിയെടുത്തു; എല്ലാം കഴിഞ്ഞ് ഉപേക്ഷിച്ചു: വിങ്ങലോടെ റംസിയുടെ സഹോദരി", "prmāvdhi ūṟṟiyeṭuttu; ellāṃ kẕiññ upēkṣiccu: viṅṅlōṭe ṟṃsiyuṭe shōdri"
test "വഴിനീളെ രോഷം; യൂത്ത്‌ കോണ്‍ഗ്രസുകാരന്റെ  കയ്യൊടിഞ്ഞു, കൈവീശികാട്ടി ജലീൽ", "vẕinīḷe rōṣṃ; yūtt kōṇgrsukārnṟe  kyyoṭiññu, kaivīśikāṭṭi jlīl"
test "‘വികൃതിപ്പയ്യനാ’യിരുന്ന കോലി മിന്നും താരമായത് ഇന്ത്യൻ ക്രിക്കറ്റിന്റെ ഗുണം: അക്തർ", "‘vikṛtippyynā’yirunn kōli minnuṃ tārmāyt intyṇ krikkṟṟinṟe guṇṃ: aktr"
test "ലോകത്തിനു വാക്സീൻ വേണമെങ്കിൽ ഈ നഗരം കനിയണം; തലയുയർത്തി ഇന്ത്യ", "lōkttinu vāksīṇ vēṇmeṅkil ī ngrṃ kniyṇṃ; tlyuyrtti inty"
test "‘അദ്ദേഹം ഒരു മകളെപ്പോലെ എന്നെ കേട്ടു’: ഗവർണറെ കണ്ട് കങ്കണ റനൗട്ട്", "‘addēhṃ oru mkḷeppōle enne kēṭṭu’: gvrṇṟe kṇṭ kṅkṇ ṟnṭṭ"
test "‘എല്ലാം ഫെയ്‌സ്ബുക്കില്‍ പറയുമെന്നു ജലീല്‍; കനത്ത സുരക്ഷയില്‍ യാത്ര, കരിങ്കൊടി", "‘ellāṃ pheysbukkil pṟyumennu jlīl; kntt surkṣyil yātr, kriṅkoṭi"
test "ഏറ്റവും ചെറുപ്പം ജോയി; ജയലക്ഷ്മി, ദീപ്തി, ജ്യോതി; പട്ടികയിലെ നിര ഇങ്ങനെ‌", "ēṟṟvuṃ ceṟuppṃ jōyi; jylkṣmi, dīpti, jyōti; pṭṭikyile nir iṅṅne"
test "പരിശോധന കുറച്ച് കേരളം; കോവിഡ് ടെസ്റ്റ് പോസിറ്റിവിറ്റി നിരക്ക് എറ്റവും ഉയർന്ന്; ആശങ്ക‌", "priśōdhn kuṟcc kērḷṃ; kōvid̂ ṭesṟṟ pōsiṟṟiviṟṟi nirkk eṟṟvuṃ uyrnn; āśṅk"

}

stage {

# RULES
# note
sub "\u0D02", "ṅ", after: any("കൿഖഗഘങ")
sub "\u0D02", "ñ", after: any("ചഛജഝഞ")
sub "\u0D02", "ṇ", after: any("ടഠഡഢണ")
sub "\u0D02", "n", after: any("തഥദധന")
sub "\u0D02", "m", after: any("പഫബഭമ")
# Those aren't tested

# CHARACTERS
parallel {
  sub "അ", "a"
  sub "ആ", "ā"
  sub "ഇ", "i"
  sub "ഈ", "ī"
  sub "ഉ", "u"
  sub "ഊ", "ū"
  sub "ഋ", "ṛ"
  sub "ഌ", "ḻ"

  sub "എ", "e"
  sub "ഏ", "ē"
  sub "ഐ", "ai"

  sub "ഒ", "o"
  sub "ഓ", "ŏ"
  sub "ഔ", "au"

  # II. Consonants (see Note 2)
  # Gutturals
  sub "ക", "k"
  sub "ൿ", "k"
  sub "ഖ", "kh"
  sub "ഗ", "g"
  sub "ഘ", "gh"
  sub "ങ", "ṅ"

  # Palatals
  sub "ച", "c"
  sub "ഛ", "ch"
  sub "ജ", "j"
  sub "ഝ", "jh"
  sub "ഞ", "ñ"

  # Cerebrals
  sub "ട", "ṭ"
  sub "ഠ", "ṭh"
  sub "ഡ", "d̂"
  sub "ഢ", "ḍh"
  sub "ണ", "ṇ"

  # Dentals
  sub "ത", "t"
  sub "ഥ", "th"
  sub "ദ", "d"
  sub "ധ", "dh"
  sub "ന", "n"

  # Labials
  sub "പ", "p"
  sub "ഫ", "ph"
  sub "ബ", "b"
  sub "ഭ", "bh"
  sub "മ", "m"

  # Semivowels
  sub "യ", "y"
  sub "ര", "r"
  sub "ർ", "r"
  sub "റ", "ṟ"
  sub "ൽ", "l"
  sub "ല", "l"
  sub "ള", "ḷ"
  sub "ൾ", "ḷ"
  sub "ഴ", "ẕ"
  # Sibilants
  sub "വ", "v"
  sub "ശ", "ś"
  sub "ഷ", "ṣ"
  sub "സ", "s"

  # Aspirate
  sub "ഹ", "h"

  # Chandrabindu
  sub "\u0D01", "m"

  # Bisarga
  sub "ഃ", "ḥ"

  # Anusvāra
  sub "ം", "ṃ"

  # Medials # Needed for connecting constants

  sub "ാ", "ā"
  sub "ി", "i"
  sub "ീ", "ī"
  sub "ു", "u"
  sub "ൂ", "ū"

  sub "ൃ", "ṛ"
  sub "ൄ", "ṝ"

  sub "െ", "e"
  sub "േ", "ē"
  sub "ൈ", "ai"
  sub "ൊ", "o"
  sub "ോ", "ō"
  sub "ൌ", "au"

  sub "ൺ", "n"
  sub "ൻ", "ṇ"

  sub "्", ""
  sub "്", ""
  sub "़", ""
  sub "ൗ", ""
  sub "‍", "" # no need for zero with joiner
  sub "‌", "" # no need for zero with non joiner
}

compose

}