metadata {

authority_id: bis
id: 1991
language: iso-639-2:dev
source_script: Deva
destination_script: Latn
name: Indian script code for information interchange (ISCII) -- Devanagri 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 "हम", "hm"
test "मीन", "mīn"
test "औसत", "aust"
test "माँ", "mām"
test "ट्रंप बोले, चीन को देश बेच देगा बिडेन परिवार, वैक्सीन लाने की कोशिशों में अड़ंगा डालने का लगाया आरोप", "ṭrmp bōlē, cīn kō dēś bēc dēgā biḍēn privār, vaiksīn lānē kī kōśiśōṃ mēṃ aḍṅgā ḍālnē kā lgāyā ārōp"
test "चालबाज चीन से तनातनी के बीच पश्चिमी मोर्चे को लगातार मजबूत कर रही वायुसेना", "cālbāj cīn sē tnātnī kē bīc pścimī mōrcē kō lgātār mjbūt kr rhī vāyusēnā"
test "चीन ने पांचों भारतीय नागरिकों को रिहा किया, PLA ने किया था अगवा", "cīn nē pāñcōṃ bhārtīy nāgrikōṃ kō rihā kiyā, PLA nē kiyā thā agvā"
test "पूर्व नौसेना अधिकारी मदन शर्मा से रक्षा मंत्री राजनाथ सिंह ने की बात, कहा- ऐसे हमले हैं अस्वीकार्य", "pūrv nausēnā adhikārī mdn śrmā sē rkṣā mntrī rājnāth siṃh nē kī bāt, khā- aisē hmlē haiṃ asvīkāry"
test "सात दिन बाद ही छोड़ दिया ससुराल", "sāt din bād hī chōd̂ diyā ssurāl"
test "राजस्‍थान में फि‍र खींचतान, पायलट ने गहलोत को लिखा पत्र, याद दिलाया घोषणा-पत्र, कहा- नाखुश है गुर्जर समाज", "rājsthān mēṃ phir khīñctān, pāylṭ nē ghlōt kō likhā ptr, yād dilāyā ghōṣṇā-ptr, khā- nākhuś hai gurjr smāj"

}

stage {

# RULES
# note
sub "\u0902", "ṅ", after: any("कखगघङ")
sub "\u0902", "ñ", after: any("चछजझञ")
sub "\u0902", "ṇ", after: any("टठडढण")
sub "\u0902", "n", after: any("तथदधन")
sub "\u0902", "m", after: any("पफबभम")

# CHARACTERS
parallel {
  sub "अ", "a"
  sub "आ", "ā"
  sub "इ", "i"
  sub "ई", "ī"
  sub "उ", "u"
  sub "ऊ", "ū"
  sub "ऋ", "ṛ"
  sub "ॠ", "ṝ"
  sub "ऌ", "ḻ"
  sub "ॡ", "ḹ"

  sub "ए", "ē"
  sub "ऐ", "ai"
  sub "ऍ", "ê"

  sub "ऒ", "o"
  sub "ओ", "ŏ"
  sub "औ", "au"
  sub "ऑ", "ô"

  # II. Consonants (see Note 2)
  # Gutturals
  sub "क", "k"
  sub "ख", "kh"
  sub "ग", "g"
  sub "घ", "gh"
  sub "ङ", "ṅ"

  # Palatals
  sub "च", "c"
  sub "छ", "ch"
  sub "ज", "j"
  sub "झ", "jh"
  sub "ञ", "ñ"

  # Cerebrals
  sub "ट", "ṭ"
  sub "ठ", "ṭh"
  sub "ड", "ḍ"
  sub "ढ", "ḍh"
  sub "ण", "ṇ"

  # Dentals
  sub "त", "t"
  sub "थ", "th"
  sub "द", "d"
  sub "ध", "dh"
  sub "न", "n"
  sub "ऩ", "ṉ"

  # Labials
  sub "प", "p"
  sub "फ", "ph"
  sub "ब", "b"
  sub "भ", "bh"
  sub "म", "m"

  # Semivowels
  sub "य", "y"
  sub "य़", "ẏ"
  sub "र", "r"
  sub "ऱ", "ṟ"
  sub "ल", "l"
  sub "ळ", "ḷ"
  sub "ऴ", "ẕ"

  sub "व", "v"

  # Sibilants
  sub "श", "ś"
  sub "ष", "ṣ"
  sub "स", "s"

  # Aspirate
  sub "ह", "h"

  #Nukta Constants

  sub "क़", "q"
  sub "ख़", "ḵẖ"
  sub "ग़", "gẖ"
  sub "ज़", "z"
  sub "ड़", "d̂"
  sub "ढ़", "d̂h"
  sub "फ़", "f"

  # Chandrabindu
  sub "ँ", "m"

  # Bisarga
  sub "ः ", "ḥ"

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

  # Medials # Needed for connecting constants
  sub "ा", "ā"
  sub "ि", "i"
  sub "ी", "ī"
  sub "ु", "u"
  sub "ू", "ū"
  sub "ृ", "ṛ"

  sub "ॆ", "e"
  sub "े", "ē"
  sub "ै", "ai"
  sub "ॅ", "ê"

  sub "ॊ", "o"
  sub "ो", "ō"
  sub "ौ", "au"
  sub "ॉ", "ô"
  sub "्", ""
  sub "़", ""
  sub "।", "."
  sub "‍", "" # no need for zero with joiner
}

compose

}