Gurmukhi

Gurmukhi

Root Zone Label Generation Rules, 6th Edition Current

Summary

Version6 — Root Zone LGR for the Gurmukhi Script
Date
Tag und-Guru (Gurmukhi)
Unicode16.0.0
ScopeDNS root zone
Source filerz-lgr-6-gurmukhi-script-23sep25-en.xml (33.6kb)
This ruleset in other editions: 6th Edition 5th Edition 4th Edition 3rd Edition 2nd Edition 1st Edition

This ruleset is integrated into the Common (integrated set) ruleset of this release.

Description

Root Zone Label Generation Rules for the Gurmukhi Script

Overview

This file contains a set of Label Generation Rules (LGR) for the Gurmukhi script for the Root Zone. For more details on this LGR and additional background on the script, see “Proposal for a Gurmukhi Script Root Zone Label Generation Ruleset (LGR)” [Proposal-Gurmukhi]. This file is one of a set of LGR files that together form an integrated LGR for the DNS Root Zone [RZ-LGR-6]. The format of this file follows [RFC 7940].

Repertoire

According to Section 5, “Repertoire” in [Proposal-Gurmukhi], the Gurmukhi script LGR contains 56 code points for the letters of the Punjabi language written using the Gurmukhi script. Punjabi ([EGIDS] level 2) is the only language currently using the Gurmukhi script.

The repertoire is contained in [MSR-6], which is a subset of [Unicode 16.0.0].

Read the rest of the description Show less

As part of the Root Zone, this LGR includes neither decimal digits nor the HYPHEN-MINUS.

Repertoire Listing: Each code point or range is tagged with the script or scripts with which the code point is used and one or more other character categories. For each repertoire element, one or more references document sufficient justification for inclusion in the repertoire; see the “References” below. For code points that are part of the repertoire, comments identify the language using the code point, as well as alternate names of some code points.

Code points outside the Gurmukhi script repertoire that are listed in this file are targets for out-of-repertoire variants and are identified by a reflexive (identity) variant of type “out-of-repertoire-var”. They do not form part of the repertoire.

Variants

The Gurmukhi and Devanagari scripts are closely related to each other and there are many code points in both scripts which can be confused with code points in the other script. Five sequences of Devanagari code points are defined as variants of single Gurmukhi code points. Additional cross-script variant analysis identified a smaller set of code points from the Bengali script. Where these can cause confusion even to a careful observer, they have been defined as variants. Variants due to transitivity among cross-script variants are not marked.

There are no in-script variants directly defined for Gurmukhi. See Section 6, “Variants”, in [Proposal-Gurmukhi]. However, transitivity of cross-script variants imposes one in-script variant pair.

Variant Disposition: All variants are of type “blocked”, making labels that differ only by these variants mutually exclusive: whichever label containing either of these variants is chosen earlier would be delegated, while any other equivalent labels should be blocked. There is no preference among these labels.

This LGR does not define allocatable variants.

The specification of variants in the Root Zone LGR follows the guidelines in [RFC 8228].

Character Classes

Gurmukhi is an alphasyllabary and the heart of the writing system is the akshar. This is the unit which is instinctively recognized by users of the script. The elements of the writing system consist of Consonants, Implicit Vowel Killer: Halant, Vowels, Bindi, Tippi, Addak, Nukta and Visarga.

Consonants: Gurmukhi consonants contain an implicit vowel schwa /ə/. They are also used without any modification to represent consonant sounds without an implicit /ə/ vowel More details in Section 3.3.1, “The Consonants” in [Proposal-Gurmukhi].

Virama: Unlike the Halant in other Neo-Brahmi scripts, U+094D GURMUKHI SIGN VIRAMA is not used in general to strip a consonant letter’s implicit vowel. The Virama is only used to create a conjunct where the letter U+0A39 HA, U+0A30 RA or U+0A35 VA is the second element in a conjunct. More details in Section 3.3.2, “The Implicit Vowel Killer: Virama” in [Proposal-Gurmukhi].

Vowels and Matras: Punjabi has seven long vowels and three short vowels (ਅ /ə/, ਇ /I/, and ਉ /U/) . Each of them, except U+0A05 have a corresponding vowel sign, or matra, which is used to modify the vowel inherent in the preceding consonant. More details in Section 3.3.3, “Vowels” in [Proposal-Gurmukhi].

Bindi: Bindi represents a homo-organic nasal. Bindi is used with all long vowels and the short vowel U+0A09, as well as with the matras of long vowels, except the matra U+0A42. More details in Section 3.3.4.1, “The Bindi” in [Proposal-Gurmukhi].

Tippi: Tippi is used to nasalize short vowels /ə/ and /I/ at all places, as well as /U/ and /u/ after a consonant. Therefore, Tippi comes after consonants without a vowel sign (representing the matra of /ə/ “mukta” ) and after the matra of /I/ ( ਿ ) following vowel carriers and consonants, such as in ਸੰ and ਸਿੰ. The matras of /U/ ( ੁ,) and /u/ ( ੂ ) following a consonant also take a Tippi. In addition, Tippi is used in gemination for nasal consonants ਙ, ਞ, ਨ and ਮ. More details in Section 3.3.4.2, “The Tippi” in [Proposal-Gurmukhi].

Addak: Addak is used to mark the gemination of the following consonant. In Punjabi, addak usually can follow mukta, aunkar ( ੁ ) and sihari ( ਿ ), and the vowel signs of the short vowels /ə/, /u/ and /i/. It geminates the consonant that follows it; therefore it cannot occur at the end of a label. More details in Section 3.3.4.3 “The Addak” in [Proposal-Gurmukhi].

Nukta: Called pairin bindi in Punjabi, Nukta is used with the six consonants (ਸ, ਖ, ਗ, ਜ, ਫ and ਲ ) defined as set C1 to represent the phonemes of words of Sanskrit and Perso-Arabic sources. More details in Section 3.3.4.4, “Nukta” in [Proposal-Gurmukhi].

Whole Label Evaluation (WLE) and Context Rules

Default Whole Label Evaluation Rules and Actions

The LGR includes the set of required default WLE rules and actions applicable to the Root Zone and defined in [MSR-6]. They are marked with ⍟. The default prohibition on leading combining marks is equivalent to ensuring that a label only starts with a consonant or vowel. The actions compute a label disposition based on WLE rules or variant mapping types.

Gurmukhi-specific Rules

These rules have been drafted to ensure that the prospective Gurmukhi label conforms to akshar formation norms as desired in Gurmukhi script. These norms are exclusively presented as context rules.

The following symbols are used in the WLE rules:
C → Consonant
M → Matra
V → Vowel
B → Bindi
D → Tippi
A → Addak
H → Virama / Halant
N → Nukta
M1 → { ਿ(U+0A3F), ੁ (U+0A41) } (Short matras)
M2 → M - M1 (Long matras)
V1 → { ਅ (U+0A05), ਇ (U+0A07), ਉ (U+0A09)} (Short Vowels)
V2 → V - V1 (Long Vowel)
C1 → {ਖ (U+0A16), ਗ (U+0A17), ਜ (U+0A1C), ਫ (U+0A2B), ਲ (U+0A32), ਸ (U+0A38)}
C2 → { ਰ (U+0A30), ਵ (U+0A35), ਹ (U+0A39)}
C3 → C – {ਙ (U+0A19), ਞ (U+0A1E), ਣ (U+0A23), ਹ (U+0A39), ੜ (U+0A5C)}

The rules are:

  • 7.1 N: must be preceded by C1
  • 7.2 H: must be preceded by C or N and followed by C2
  • 7.3 M: must be preceded by C or N
  • 7.4 B: must be preceded by specific V or M
  • 7.5 D: must be preceded by C, N or specific V or M
  • 7.6 A: must be preceded by C, N or specific V or M and followed by C3

More details in Section 7, “Whole Label Evaluation Rules (WLE)” in [Proposal-Gurmukhi].

Methodology and Contributors

The Root Zone LGR for the Gurmukhi Script was developed by the Neo-Brahmi Generation Panel (NBGP), the members of which have experience in linguistics and computational linguistics in a wide variety of languages written with Neo-Brahmi scripts. Under the Neo-Brahmi Generation Panel, there are nine scripts belonging to separate Unicode blocks. Each of these scripts has been assigned a separate LGR, with the Neo-Brahmi GP ensuring that the fundamental philosophy behind building each LGR is in sync with all other Brahmi-derived scripts. For further details on methodology and contributors, see Sections 4 and 8 in [Proposal-Gurmukhi], as well as [RZ-LGR-6-Overview].

References

The following general references are cited in this document:

[EGIDS]
Lewis and Simons, “EGIDS: Expanded Graded Intergenerational Disruption Scale,” documented in [SIL-Ethnologue] and summarized here: https://en.wikipedia.org/wiki/Expanded_Graded_Intergenerational_Disruption_Scale_(EGIDS)
[MSR-6]
Integration Panel, “Maximal Starting Repertoire — MSR-6 Overview and Rationale”, 23 September 2025, https://www.icann.org/en/system/files/files/msr-6-overview-23sep25-en.pdf
[Proposal-Gurmukhi]
Neo-Brahmi Generation Panel, “Proposal for a Gurmukhi Script Root Zone Label Generation Ruleset (LGR)”, 22 April 2019, https://www.icann.org/en/system/files/files/proposal-gurmukhi-lgr-22apr19-en.pdf
[RFC 7940]
Davies, K. and A. Freytag, “Representing Label Generation Rulesets Using XML”, RFC 7940, August 2016, https://www.rfc-editor.org/info/rfc7940
[RFC 8228]
A. Freytag, “Guidance on Designing Label Generation Rulesets (LGRs) Supporting Variant Labels”, RFC 8228, August 2017, https://www.rfc-editor.org/info/rfc8228
[RZ-LGR-6-Overview]
Integration Panel, “Root Zone Label Generation Rules (RZ LGR-6): Overview and Summary”, 23 September 2025, https://www.icann.org/sites/default/files/lgr/rz-lgr-6-overview-23sep25-en.pdf
[RZ-LGR-6]
Integration Panel, “Root Zone Label Generation Rules (RZ-LGR-6)”, 23 September 2025 (XML), https://www.icann.org/sites/default/files/lgr/rz-lgr-6-common-23sep25-en.xml
non-normative HTML presentation: https://www.icann.org/sites/default/files/lgr/rz-lgr-6-common-23sep25-en.html
[SIL-Ethnologue]
David M. Eberhard, Gary F. Simons & Charles D. Fennig (eds.). 2021. Ethnologue: Languages of the World, Twenty fourth edition. Dallas, Texas: SIL International. Online version available as https://www.ethnologue.com
[Unicode 16.0.0]
The Unicode Consortium. The Unicode Standard, Version 16.0.0, (South San Francisco: The Unicode Consortium, 2024. ISBN 978-1-936213-34-4) https://www.unicode.org/versions/Unicode16.0.0/

For references consulted, particularly in designing the repertoire for the Gurmukhi script for the Root Zone, please see details in the Table of References below. Reference [0] refers to the Unicode Standard version in which the corresponding code points were initially encoded. References [101] and above correspond to sources justifying the inclusion of the corresponding code points. Entries in the table may have multiple source reference values.

Repertoire

Glyph Code point Tags and context Variants
ं U+0902 DEVANAGARI SIGN ANUSVARA 0 Not part of repertoire Tagsc:Deva ऺ U+093A blocked ਂ U+0A02 blocked Cross-script homoglyph
इ U+0907 DEVANAGARI LETTER I 0 Not part of repertoire Tagsc:Deva ਙ U+0A19 blocked Cross-script homoglyph
उ U+0909 DEVANAGARI LETTER U 0 Not part of repertoire Tagsc:Deva ਤ U+0A24 blocked Cross-script homoglyph
ग U+0917 DEVANAGARI LETTER GA 0 Not part of repertoire Tagsc:Deva ਗ U+0A17 blocked Cross-script homoglyph
घ U+0918 DEVANAGARI LETTER GHA 0 Not part of repertoire Tagsc:Deva ਬ U+0A2C blocked Cross-script homoglyph
ट U+091F DEVANAGARI LETTER TTA 0 Not part of repertoire Tagsc:Deva ਟ U+0A1F blocked Cross-script homoglyph
ठ U+0920 DEVANAGARI LETTER TTHA 0 Not part of repertoire Tagsc:Deva ਠ U+0A20 blocked Cross-script homoglyph
ढ U+0922 DEVANAGARI LETTER DDHA 0 Not part of repertoire Tagsc:Deva ਫ U+0A2B blocked Cross-script homoglyph
त्त U+0924U+094DU+0924 sequence of 3 DEVANAGARI LETTER TA + DEVANAGARI SIGN VIRAMA + DEVANAGARI LETTER TA Not part of repertoire variant target only ਜ U+0A1C blocked Cross-script homoglyph
प U+092A DEVANAGARI LETTER PA 0 Not part of repertoire Tagsc:Deva ਧ U+0A27 blocked Cross-script homoglyph
प्टि U+092AU+094DU+091FU+093F sequence of 4 DEVANAGARI LETTER PA + DEVANAGARI SIGN VIRAMA + DEVANAGARI LETTER TTA + DEVANAGARI VOWEL SIGN I Not part of repertoire variant target only ਇ U+0A07 blocked Cross-script homoglyph
प्टी U+092AU+094DU+091FU+0940 sequence of 4 DEVANAGARI LETTER PA + DEVANAGARI SIGN VIRAMA + DEVANAGARI LETTER TTA + DEVANAGARI VOWEL SIGN II Not part of repertoire variant target only ਈ U+0A08 blocked Cross-script homoglyph
प्टॆ U+092AU+094DU+091FU+0946 sequence of 4 DEVANAGARI LETTER PA + DEVANAGARI SIGN VIRAMA + DEVANAGARI LETTER TTA + DEVANAGARI VOWEL SIGN SHORT E Not part of repertoire variant target only प्टे U+092A + U+094D + U+091F + U+0947 blocked ਏ U+0A0F blocked Cross-script homoglyph
प्टे U+092AU+094DU+091FU+0947 sequence of 4 DEVANAGARI LETTER PA + DEVANAGARI SIGN VIRAMA + DEVANAGARI LETTER TTA + DEVANAGARI VOWEL SIGN E Not part of repertoire variant target only प्टॆ U+092A + U+094D + U+091F + U+0946 blocked ਏ U+0A0F blocked Cross-script homoglyph
भ U+092D DEVANAGARI LETTER BHA 0 Not part of repertoire Tagsc:Deva ਮ U+0A2E blocked Cross-script homoglyph
म U+092E DEVANAGARI LETTER MA 0 Not part of repertoire Tagsc:Deva ম U+09AE blocked Cross-script homoglyph ਸ U+0A38 blocked Cross-script homoglyph
व U+0935 DEVANAGARI LETTER VA 0 Not part of repertoire Tagsc:Deva ਕ U+0A15 blocked Cross-script homoglyph
ह U+0939 DEVANAGARI LETTER HA 0 Not part of repertoire Tagsc:Deva ਵ U+0A35 blocked Cross-script homoglyph
ऺ U+093A DEVANAGARI VOWEL SIGN OE 11 Not part of repertoire Tagsc:Deva ं U+0902 blocked ਂ U+0A02 blocked Cross-script homoglyph
़ U+093C DEVANAGARI SIGN NUKTA 0 Not part of repertoire Tagsc:Deva ਼ U+0A3C blocked Cross-script homoglyph
ि U+093F DEVANAGARI VOWEL SIGN I 0 Not part of repertoire Tagsc:Deva ি U+09BF blocked Cross-script homoglyph ਿ U+0A3F blocked Cross-script homoglyph
ी U+0940 DEVANAGARI VOWEL SIGN II 0 Not part of repertoire Tagsc:Deva ੀ U+0A40 blocked Cross-script homoglyph
ॅ U+0945 DEVANAGARI VOWEL SIGN CANDRA E 0 Not part of repertoire Tagsc:Deva ੱ U+0A71 blocked Cross-script homoglyph
ॆ U+0946 DEVANAGARI VOWEL SIGN SHORT E 0 Not part of repertoire Tagsc:Deva े U+0947 blocked ੇ U+0A47 blocked Cross-script homoglyph ੋ U+0A4B blocked Cross-script homoglyph
े U+0947 DEVANAGARI VOWEL SIGN E 0 Not part of repertoire Tagsc:Deva ॆ U+0946 blocked ੇ U+0A47 blocked Cross-script homoglyph ੋ U+0A4B blocked Cross-script homoglyph
ै U+0948 DEVANAGARI VOWEL SIGN AI 0 Not part of repertoire Tagsc:Deva ੈ U+0A48 blocked Cross-script homoglyph
ॖ U+0956 DEVANAGARI VOWEL SIGN UE 11 Not part of repertoire Tagsc:Deva ੁ U+0A41 blocked Cross-script homoglyph
ॗ U+0957 DEVANAGARI VOWEL SIGN UUE 11 Not part of repertoire Tagsc:Deva ੂ U+0A42 blocked Cross-script homoglyph
ম U+09AE BENGALI LETTER MA 0 Not part of repertoire Tagsc:Beng म U+092E blocked Cross-script homoglyph ਸ U+0A38 blocked Cross-script homoglyph
ি U+09BF BENGALI VOWEL SIGN I 0 Not part of repertoire Tagsc:Beng ि U+093F blocked Cross-script homoglyph ਿ U+0A3F blocked Cross-script homoglyph
ਂ U+0A02 GURMUKHI SIGN BINDI 0 101 105 112 Punjabi TagBindiTagsc:Guru Contextfollows-specific-V-or-M ं U+0902 blocked Cross-script homoglyph ऺ U+093A blocked Cross-script homoglyph
ਅ U+0A05 GURMUKHI LETTER A 0 101 105 112 = aira; Punjabi Tagsc:GuruTagV1TagVowel
ਆ U+0A06 GURMUKHI LETTER AA 0 101 105 112 Punjabi Tagsc:GuruTagVowel
ਇ U+0A07 GURMUKHI LETTER I 0 101 105 112 Punjabi Tagsc:GuruTagV1TagVowel प्टि U+092A + U+094D + U+091F + U+093F blocked Cross-script homoglyph
ਈ U+0A08 GURMUKHI LETTER II 0 101 105 112 Punjabi Tagsc:GuruTagVowel प्टी U+092A + U+094D + U+091F + U+0940 blocked Cross-script homoglyph
ਉ U+0A09 GURMUKHI LETTER U 0 101 105 112 Punjabi Tagsc:GuruTagV1TagVowel
ਊ U+0A0A GURMUKHI LETTER UU 0 101 105 112 Punjabi Tagsc:GuruTagVowel
ਏ U+0A0F GURMUKHI LETTER EE 0 101 105 112 Punjabi Tagsc:GuruTagVowel प्टॆ U+092A + U+094D + U+091F + U+0946 blocked Cross-script homoglyph प्टे U+092A + U+094D + U+091F + U+0947 blocked Cross-script homoglyph
ਐ U+0A10 GURMUKHI LETTER AI 0 101 105 112 Punjabi Tagsc:GuruTagVowel
ਓ U+0A13 GURMUKHI LETTER OO 0 101 105 112 Punjabi Tagsc:GuruTagVowel
ਔ U+0A14 GURMUKHI LETTER AU 0 101 105 112 Punjabi Tagsc:GuruTagVowel
ਕ U+0A15 GURMUKHI LETTER KA 0 101 105 112 Punjabi TagConsonantTagsc:Guru व U+0935 blocked Cross-script homoglyph
ਖ U+0A16 GURMUKHI LETTER KHA 0 101 105 112 Punjabi TagC1TagConsonantTagsc:Guru
ਗ U+0A17 GURMUKHI LETTER GA 0 101 105 112 Punjabi TagC1TagConsonantTagsc:Guru ग U+0917 blocked Cross-script homoglyph
ਘ U+0A18 GURMUKHI LETTER GHA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਙ U+0A19 GURMUKHI LETTER NGA 0 101 105 112 Punjabi TagConsonantTagsc:Guru इ U+0907 blocked Cross-script homoglyph
ਚ U+0A1A GURMUKHI LETTER CA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਛ U+0A1B GURMUKHI LETTER CHA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਜ U+0A1C GURMUKHI LETTER JA 0 101 105 112 Punjabi TagC1TagConsonantTagsc:Guru त्त U+0924 + U+094D + U+0924 blocked Cross-script homoglyph
ਝ U+0A1D GURMUKHI LETTER JHA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਞ U+0A1E GURMUKHI LETTER NYA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਟ U+0A1F GURMUKHI LETTER TTA 0 101 105 112 Punjabi TagConsonantTagsc:Guru ट U+091F blocked Cross-script homoglyph
ਠ U+0A20 GURMUKHI LETTER TTHA 0 101 105 112 Punjabi TagConsonantTagsc:Guru ठ U+0920 blocked Cross-script homoglyph
ਡ U+0A21 GURMUKHI LETTER DDA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਢ U+0A22 GURMUKHI LETTER DDHA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਣ U+0A23 GURMUKHI LETTER NNA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਤ U+0A24 GURMUKHI LETTER TA 0 101 105 112 Punjabi TagConsonantTagsc:Guru उ U+0909 blocked Cross-script homoglyph
ਥ U+0A25 GURMUKHI LETTER THA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਦ U+0A26 GURMUKHI LETTER DA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਧ U+0A27 GURMUKHI LETTER DHA 0 101 105 112 Punjabi TagConsonantTagsc:Guru प U+092A blocked Cross-script homoglyph
ਨ U+0A28 GURMUKHI LETTER NA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਪ U+0A2A GURMUKHI LETTER PA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਫ U+0A2B GURMUKHI LETTER PHA 0 101 105 112 Punjabi TagC1TagConsonantTagsc:Guru ढ U+0922 blocked Cross-script homoglyph
ਬ U+0A2C GURMUKHI LETTER BA 0 101 105 112 Punjabi TagConsonantTagsc:Guru घ U+0918 blocked Cross-script homoglyph
ਭ U+0A2D GURMUKHI LETTER BHA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਮ U+0A2E GURMUKHI LETTER MA 0 101 105 112 Punjabi TagConsonantTagsc:Guru भ U+092D blocked Cross-script homoglyph
ਯ U+0A2F GURMUKHI LETTER YA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ਰ U+0A30 GURMUKHI LETTER RA 0 101 105 112 Punjabi TagC2TagConsonantTagsc:Guru
ਲ U+0A32 GURMUKHI LETTER LA 0 101 105 112 Punjabi TagC1TagConsonantTagsc:Guru
ਵ U+0A35 GURMUKHI LETTER VA 0 101 105 112 Punjabi TagC2TagConsonantTagsc:Guru ह U+0939 blocked Cross-script homoglyph
ਸ U+0A38 GURMUKHI LETTER SA 0 101 105 112 Punjabi TagC1TagConsonantTagsc:Guru म U+092E blocked Cross-script homoglyph ম U+09AE blocked Cross-script homoglyph
ਹ U+0A39 GURMUKHI LETTER HA 0 101 105 112 Punjabi TagC2TagConsonantTagsc:Guru
਼ U+0A3C GURMUKHI SIGN NUKTA 0 101 105 112 = pairin bindi; Punjabi TagNuktaTagsc:Guru Contextfollows-C1 ़ U+093C blocked Cross-script homoglyph
ਾ U+0A3E GURMUKHI VOWEL SIGN AA 0 101 105 110 112 = kanna; Punjabi TagMatraTagsc:Guru Contextfollows-C-or-N
ਿ U+0A3F GURMUKHI VOWEL SIGN I 0 101 105 112 = sihari; Punjabi TagM1TagMatraTagsc:Guru Contextfollows-C-or-N ि U+093F blocked Cross-script homoglyph ি U+09BF blocked Cross-script homoglyph
ੀ U+0A40 GURMUKHI VOWEL SIGN II 0 101 105 112 = bihari; Punjabi TagMatraTagsc:Guru Contextfollows-C-or-N ी U+0940 blocked Cross-script homoglyph
ੁ U+0A41 GURMUKHI VOWEL SIGN U 0 101 105 112 = aunkar; Punjabi TagM1TagMatraTagsc:Guru Contextfollows-C-or-N ॖ U+0956 blocked Cross-script homoglyph
ੂ U+0A42 GURMUKHI VOWEL SIGN UU 0 101 105 112 = dulainkar; Punjabi TagMatraTagsc:Guru Contextfollows-C-or-N ॗ U+0957 blocked Cross-script homoglyph
ੇ U+0A47 GURMUKHI VOWEL SIGN EE 0 101 105 112 = lanvan; Punjabi TagMatraTagsc:Guru Contextfollows-C-or-N ॆ U+0946 blocked Cross-script homoglyph े U+0947 blocked Cross-script homoglyph ੋ U+0A4B blocked Cross-script homoglyph
ੈ U+0A48 GURMUKHI VOWEL SIGN AI 0 101 105 112 = dulavan; Punjabi TagMatraTagsc:Guru Contextfollows-C-or-N ै U+0948 blocked Cross-script homoglyph
ੋ U+0A4B GURMUKHI VOWEL SIGN OO 0 101 105 112 = hora; Punjabi TagMatraTagsc:Guru Contextfollows-C-or-N ॆ U+0946 blocked Cross-script homoglyph े U+0947 blocked Cross-script homoglyph ੇ U+0A47 blocked Cross-script homoglyph
ੌ U+0A4C GURMUKHI VOWEL SIGN AU 0 101 105 112 = kanaura; Punjabi TagMatraTagsc:Guru Contextfollows-C-or-N
੍ U+0A4D GURMUKHI SIGN VIRAMA 0 101 105 112 Punjabi Tagsc:GuruTagVirama Contextfollows-C-or-N-and-precedes-C2
ੜ U+0A5C GURMUKHI LETTER RRA 0 101 105 112 Punjabi TagConsonantTagsc:Guru
ੰ U+0A70 GURMUKHI TIPPI 0 101 105 112 Punjabi Tagsc:GuruTagTippi Contextfollows-C-N-or-specific-V-or-M
ੱ U+0A71 GURMUKHI ADDAK 0 101 105 112 Punjabi TagAddakTagsc:Guru Contextfollows-C-N-or-specific-V-or-M-and-precedes-C3 ॅ U+0945 blocked Cross-script homoglyph

Identity mappings, where a code point is declared a variant of itself, are required by RFC 7940 and are omitted here. 106 variant records are declared in total.

Variants

Code points grouped into sets of mutual variants. Every member of a set produces the same set of variant labels, so a registration of one has implications for all the others. Sets of a single member are omitted, as are the identity mappings RFC 7940 requires each member to declare.

25 variant sets, containing 76 variants.

Character classes

Named sets of code points that the rules below refer to.

NameDefinition
C {tag Consonant} Any Gurmukhi consonant
V {tag Vowel} Any Gurmukhi independent vowel
M {tag Matra} Any Gurmukhi vowel sign (matra)
N {tag Nukta} The Gurmukhi Nukta
V1 {tag V1} Specific vowels that are used with Gurmukhi Addak
V2 ({V} ∖ {V1}) Specific vowels that are used with Gurmukhi Bindi
M1 {tag M1} Gurmukhi short matras
M2 ({M} ∖ {M1}) Gurmukhi long matras
C1 {tag C1} Specific consonants preceding Gurmukhi Nukta
C2 {tag C2} Specific consonants following Gurmukhi Halant
C3 ({C} ∖ [U+0A19 U+0A1E U+0A23 U+0A39 U+0A5C]) Specific consonants following Gurmukhi Addak

Rules

Conditions evaluated against a whole label, or against the context around a single code point. The notation borrows from regular expressions: ^ and $ anchor to the start and end of a label, . matches any code point, (?= ) and (?<= ) look ahead and behind, and * and + repeat. Two symbols are specific to rulesets: ◆ is the code point being tested, and ⟨name⟩ refers to another rule.

leading-combining-mark MSR default

Default WLE rule matching labels with leading combining marks

^ ({gc:Mn} ∪ {gc:Mc})
Structure
  • ^ start
  • ({gc:Mn} ∪ {gc:Mc}) union
    • {gc:Mn} class
    • {gc:Mc} class
Referenced by 1 definition
  • action 1 (invalid)

follows-C1

Section 7.1. N: must be preceded by C1

(?<= {C1} ) ◆
Structure
  • (?<= {C1} ) look-behind
    • {C1} class
  • ◆ anchor
Referenced by 1 definition
  • context of U+0A3C

follows-C-or-N-and-precedes-C2

Section 7.2. H: must be preceded by C or N and followed by C2

(?<= ( {C} │ {N} ) ) ◆ (?= {C2} )
Structure
  • (?<= ( {C} │ {N} ) ) look-behind
    • ( {C} │ {N} ) choice
      • {C} class
      • {N} class
  • ◆ anchor
  • (?= {C2} ) look-ahead
    • {C2} class
Referenced by 1 definition
  • context of U+0A4D

follows-C-or-N

Section 7.3. M: must be preceded by C or N

(?<= ( {C} │ {N} ) ) ◆
Structure
  • (?<= ( {C} │ {N} ) ) look-behind
    • ( {C} │ {N} ) choice
      • {C} class
      • {N} class
  • ◆ anchor
Referenced by 9 definitions
  • context of U+0A3E
  • context of U+0A3F
  • context of U+0A40
  • context of U+0A41
  • context of U+0A42
  • context of U+0A47
  • context of U+0A48
  • context of U+0A4B
  • context of U+0A4C

follows-specific-V-or-M

Section 7.4. Bindi must be preceded by specific V or M

(?<= ( {V2} │ U+0A09 │ ( ({M2} ∖ [U+0A42]) ) ) ) ◆
Structure
  • (?<= ( {V2} │ U+0A09 │ ( ({M2} ∖ [U+0A42]) ) ) ) look-behind
    • ( {V2} │ U+0A09 │ ( ({M2} ∖ [U+0A42]) ) ) choice
      • {V2} class
      • U+0A09 char GURMUKHI LETTER U
      • ({M2} ∖ [U+0A42]) rule
        • ({M2} ∖ [U+0A42]) difference
          • {M2} class
          • [U+0A42] class
  • ◆ anchor
Referenced by 1 definition
  • context of U+0A02

follows-C-N-or-specific-V-or-M

Section 7.5. Tippi must be preceded by C, N or specific V or M

(?<= ( {C} │ {N} │ ( ({V1} ∖ [U+0A09]) ) │ {M1} │ U+0A42 ) ) ◆
Structure
  • (?<= ( {C} │ {N} │ ( ({V1} ∖ [U+0A09]) ) │ {M1} │ U+0A42 ) ) look-behind
    • ( {C} │ {N} │ ( ({V1} ∖ [U+0A09]) ) │ {M1} │ U+0A42 ) choice
      • {C} class
      • {N} class
      • ({V1} ∖ [U+0A09]) rule
        • ({V1} ∖ [U+0A09]) difference
          • {V1} class
          • [U+0A09] class
      • {M1} class
      • U+0A42 char GURMUKHI LETTER SIGN DULAINKAR
  • ◆ anchor
Referenced by 1 definition
  • context of U+0A70

follows-C-N-or-specific-V-or-M-and-precedes-C3

Section 7.6. Addak must be preceded by C, N or specific V or M and followed by C3

(?<= ( {C} │ {N} │ {V1} │ U+0A10 │ {M1} │ U+0A48 ) ) ◆ (?= {C3} )
Structure
  • (?<= ( {C} │ {N} │ {V1} │ U+0A10 │ {M1} │ U+0A48 ) ) look-behind
    • ( {C} │ {N} │ {V1} │ U+0A10 │ {M1} │ U+0A48 ) choice
      • {C} class
      • {N} class
      • {V1} class
      • U+0A10 char GURMUKHI LETTER AI
      • {M1} class
      • U+0A48 char GURMUKHI VOWEL SIGN AI
  • ◆ anchor
  • (?= {C3} ) look-ahead
    • {C3} class
Referenced by 1 definition
  • context of U+0A71

Actions

Actions are evaluated in the order shown. The first action whose conditions match determines the disposition of the label.

Actions in precedence order
# Disposition Conditions
1 invalid label matches leading-combining-mark labels with leading combining marks are invalid MSR default
2 invalid any variant is out-of-repertoire-var any variant label with a code point out of repertoire is invalid MSR default
3 blocked any variant is blocked any variant label containing blocked variants is blocked MSR default
4 allocatable all variants are allocatable variant labels with all variants allocatable are allocatable MSR default
5 valid any label default catch all (default action) MSR default

References