For each Indic script, a ‘virama’ or equivalent sign combined with a consonant gives the half form (or ready to combine form) of the consonant. Whenever a multiple key combination corresponding to a consonant is typed, the consonant + virama form is output, symbolizing that the characters are ready to combine.
Consonants, at initial input, will assume their half form and will be a full syllable or their variation when followed by a vowel.
Two consecutive consonants remain as the ready to combine half forms. Half forms can be converted by the layout engine as a single combined character or can remain as those independent forms that are also syntactically valid for every language.
Any vowel that forms the beginning of a word or is followed by another vowel appears in independent form. A vowel that immediately follows a consonant assumes dependent forms.
Characters that do not change shapes in any context are called others. These characters are neither consonants nor vowels.
Digits and other punctuation marks that do not form a part of a character are mapped one to one.
Using these principles, a parser is written that will parse the input into these different categories and output the language-specific Unicode codepoints. The continuous phonetic input method engine does not deal with layout or rendering, which will be done by other modules in the system.