Forked from anthrotype/gist:2539c6c6d56797b50abf19d64a4daee1
Last active
February 11, 2020 11:44
-
-
Save m4rc1e/241462309fc7c844633d269a37248459 to your computer and use it in GitHub Desktop.
OTL json schema
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Lookup type 1: Single Adjustment Positioning | |
# format 1: Single Positioning Value & format 2: Array of Positioning Values | |
{ | |
'format': int, | |
'valueRecord': [ | |
{"a": {"XPlacement": 0, "XAdvance": 10, "YPlacement": 0, "YAdvance": 0}, | |
... | |
} | |
] | |
# Lookup type 2: PairPos | |
# format 1: Adjustments for Glyph Pairs | |
{ | |
"format": int, | |
"values": { | |
"A": { | |
"V": -120, | |
"W": -100 | |
... | |
}, | |
"V": { | |
"A": -120, | |
... | |
}, | |
... | |
} | |
# format 2: Class Pair Adjustment | |
{ | |
"classes": { | |
"kern1.0": ["a", "b"], | |
"kern2.0": ["c", "d"], | |
"kern2.1": ["e", "f", "g"], | |
}, | |
"values": { | |
"kern1.0": { | |
"kern2.0": -40, | |
"kern2.1": 10 | |
}, | |
"kern1.1": { | |
"kern2.0": 3, | |
"kern2.1": -4, | |
} | |
} | |
} | |
# Lookup type 3: Cursive Attachment Positioning | |
# format 1: Cursive attachment | |
{ | |
"format": int, | |
"records": [ | |
{"a": ({"x": 0, "y": 0}, {"x": 400, "y": 0}), | |
... | |
] | |
} | |
# Lookup type 4: Mark-to-Base Attachment | |
# format 1: Mark-to-base Attachment Point | |
{ | |
"format": int, | |
"base": { | |
"a": {0: {"x": 300, "y": 300}, | |
1: {"x": 300, "y": 0}, | |
... | |
}, | |
"marks": { | |
"gravecomb": {0: {"x": 0, "y": 500}}, | |
"acutecomb": {0, {"x": 0, "y": 489}}, | |
"dotaccent": {1: {"x": 9, "y": 0}}, | |
... | |
} | |
# Lookup type 5: Mark-to-Ligature Attachment | |
{ | |
"format": int, | |
"ligs": { | |
"f_f": [ | |
{0: {"deviceX": None, "deviceY": None, "x": 100, "y": 100}, | |
1: {"deviceX": None, "deviceY": None, "x", 0, "y": 0}, | |
... | |
}, | |
{0: {"deviceX": None, "deviceY": None, "x": 500, "y" 100}, | |
1: {"deviceX": None, "deviceY": None, "x", 500, "y": 0}, | |
], | |
"f_i": [ | |
... | |
], | |
... | |
}, | |
"marks": { | |
"gravecomb": {0: {"x": 0, "y": 500}}, | |
"acutecomb": {0, {"x": 0, "y": 489}}, | |
"dotaccent": {1: {"x": 9, "y": 0}}, | |
... | |
} | |
Lookup Type 6: Mark-to-Mark Attachment | |
# Format 1: Mark-to-Mark Attachment | |
{ | |
"format": int, | |
"mark1": { | |
"gravecomb": {0: {"x": 0, "y": 550}, | |
"acutecomb": {0: {"x": 0, "y": 550}, | |
... | |
}, | |
"mark2": { | |
"gravecomb": {0: {"x": 0, "y": 700}}, | |
"acutecomb": {0, {"x": 0, "y": 700}}, | |
... | |
} | |
# Lookup Type 7: Contextual Positioning | |
# Format 1: Simple Glyph Contexts | |
{ | |
"format": int, | |
# NO FONTS IN GOOGLE FONTS! | |
} | |
# Format 2: Class based glyph contexts | |
{ | |
"format": int, | |
# NO FONTS IN GOOGLE FONTS! | |
} | |
# Format 3: Coverage based glyph contexts | |
{ | |
"format": int, | |
# NO FONTS IN GOOGLE FONTS! | |
} | |
# Lookup Type 8: Chaining Contextual Positioning | |
# Format 1: Simple Glyph Contexts | |
{ | |
'format': 1, | |
'rules': [ | |
{ | |
'backtrack': [], | |
'input': ['u101B.alt', 'u103E_u1030'], | |
'lookahead': [], | |
'lookup_indices': [252, 253] | |
} | |
] | |
} | |
# Format 2: Class Based Contexts | |
{ | |
'format': 2, | |
'backtrack_classes': { | |
'backtrack1': [ | |
'uni0939', | |
'glyph03032', | |
'glyph03036' | |
], | |
'backtrack2': [ | |
'uni0901', | |
'uni0902', | |
'glyph02844' | |
] | |
}, | |
'input_classes': { | |
'input1': ['uni0952'] | |
}, | |
'lookahead_classes': { | |
'lookahead1': ['uni0000'] | |
}, | |
'rules': [ | |
{ | |
'backtrack': ['backtrack1'], | |
'input': ['uni0952'], | |
'lookahead': [], | |
'lookup_indices': [16] | |
}, | |
{ | |
'backtrack': ['backtrack2', 'backtrack1'], | |
'input': ['uni0952'], | |
'lookahead': [], | |
'lookup_indices': [16] | |
} | |
] | |
} | |
# Format 3: Coverage-based Glyph Contexts | |
{ | |
'format': 3, | |
'backtrack': [ | |
('Vattu.dv',), | |
('Ka.dv', | |
'Nga.dv', | |
'Tta.dv', | |
'SsaTta.dv', | |
'PaLaone.dv'), | |
('matraI.dv',) | |
], | |
'input': [('Chandrabinduone.dv',)], | |
'lookahead': [], | |
'lookup_indices': [15] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Common structure for GPOS, GSUB | |
{ | |
"Version": int, | |
"Scripts": [ | |
{ | |
"Tag": str, | |
"DefaultLangSys": { | |
"ReqFeatureIndex": int, # is it always 0xFFFF? | |
"FeatureIndices": List[int] | |
}, | |
"LangSysRecords": [ | |
{ | |
"Tag": str, | |
"LangSys": { | |
"ReqFeatureIndex": int, | |
"FeatureIndices": List[int], | |
} | |
}, | |
] | |
}, | |
], | |
"Features": [ | |
{ | |
"Tag": str, | |
"FeatureParams": Optional[FeatureParams], | |
"LookupListIndices": List[int], | |
}, | |
], | |
"Lookups": [ | |
{ | |
"LookupType": int, | |
"LookupFlag": List[LookupFlag(Enum)], | |
"MarkFilteringSet": int, # index into GDEF.MarkFilteringSets | |
"Subtables": [ | |
# ... | |
], | |
}, | |
] | |
} | |
# GSUB subtables: | |
# Lookup Type 1: Single Substitution | |
# Format 1 & 2: | |
{ | |
'format': int, | |
'subs': { | |
'input_glyph': 'output_glyph', | |
# ... | |
} | |
} | |
# Lookup Type 2: Multiple Substitution | |
# Format 1: Multiple Substitution | |
{ | |
'format': 1, | |
'subs': {'glyph02651': ['uni0919', 'glyph02969'], | |
# ... | |
} | |
} | |
# Lookup Type 3: Alternate Substitution | |
# Format 1: | |
{ | |
'format': 1, | |
'alternates': {'A': ['ordfeminine', 'a.sc'], | |
# ... | |
} | |
} | |
# Lookup Type 4: Ligature Substitution | |
# Format 1: | |
{ | |
'format': 1, | |
'ligatures': { | |
('input_glyph1','input_glyph2', ...): 'output_glyph', | |
# ... | |
} | |
} | |
# Lookup Type 5: | |
# Format 1: Simple Glyph Contexts | |
{ | |
'format': 1, | |
'rules': [ | |
{'input': ['glyph02673', 'uni0941'], 'lookup_indices': [96, 98]}, | |
... | |
] | |
} | |
# Format 2: Class-based Glyph Contexts | |
{ | |
'format': 2, | |
'classes': { | |
'class1': ['glyph02921'], | |
'class2': ['glyph02897', 'glyph02899'], | |
'class3': ['uni0930', 'uni0931', 'glyph02673', 'glyph02709'], | |
... | |
}, | |
'rules': [ | |
{'input': ['class1', 'class2', 'class3'], 'lookup_indices': [74]}, | |
... | |
] | |
} | |
# Format 3: TODO Coverage-based Glyph Contexts | |
# Lookup Type 6: Chaining Contextual Substitution | |
# Format 1: Simple Glyph Contexts | |
{ | |
'format': 1, | |
'rules': [ | |
{'backtrack': [], | |
'input': ['viramadeva_radeva', 'zerowidthjoiner'], | |
'lookahead': ['hadeva'], | |
'lookup_indices': [31, 31]}, | |
... | |
] | |
} | |
# Format 2: Class-based Glyph Contexts | |
{ | |
'format': 2, | |
'backtrack_classes': { | |
'backtrack1': ['uni0000'] | |
}, | |
'input_classes': { | |
'input1': ['glyph02673'] | |
}, | |
'lookahead_classes': { | |
'lookahead1': [ | |
'uni0943', | |
'uni0944', | |
'uni094D', | |
'uni0962', | |
'uni0963'] | |
}, | |
'rules': [{'backtrack': [], | |
'input': ['input1'], | |
'lookahead': ['lookahead1'], | |
'lookup_indices': [18]}]} | |
# Format 3: Coverage-based Glyph Contexts | |
{ | |
'backtrack': [], | |
'input': [ | |
('isign_ra_virama_anusvara.alt2', | |
'isign_ra_virama.alt2', | |
'isigndeva.alt2', | |
'isigndeva_anusvara.alt2') | |
], | |
'lookahead': [('vadeva_viramadeva',), ('hadeva',)], | |
'lookup_indices': [34] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ 'scripts': [{'DefaultLangSys': {'FeatureIndices': [6], 'ReqFeatureIndex': 65535}, 'LangSysRecords': [], 'tag': 'DFLT'}, | |
{'DefaultLangSys': {'FeatureIndices': [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13], 'ReqFeatureIndex': 65535}, | |
'LangSysRecords': [{'FeatureIndices': [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13], | |
'RequiredFeatureIndex': 65535, | |
'tag': 'MAR '}, | |
{'FeatureIndices': [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13], | |
'RequiredFeatureIndex': 65535, | |
'tag': 'NEP '}], | |
'tag': 'dev2'}, | |
{'DefaultLangSys': {'FeatureIndices': [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13], 'ReqFeatureIndex': 65535}, | |
'LangSysRecords': [{'FeatureIndices': [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13], | |
'RequiredFeatureIndex': 65535, | |
'tag': 'MAR '}, | |
{'FeatureIndices': [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13], | |
'RequiredFeatureIndex': 65535, | |
'tag': 'NEP '}], | |
'tag': 'deva'}], | |
'features': [{'FeatureParams': None, 'lookup_indices': [25], 'tag': 'abvs'}, | |
{'FeatureParams': None, 'lookup_indices': [6], 'tag': 'akhn'}, | |
{'FeatureParams': None, 'lookup_indices': [8], 'tag': 'blwf'}, | |
{'FeatureParams': None, 'lookup_indices': [27], 'tag': 'blws'}, | |
{'FeatureParams': None, 'lookup_indices': [11], 'tag': 'cjct'}, | |
{'FeatureParams': None, 'lookup_indices': [9], 'tag': 'half'}, | |
{'FeatureParams': None, 'lookup_indices': [0], 'tag': 'haln'}, | |
{'FeatureParams': None, 'lookup_indices': [1, 2], 'tag': 'locl'}, | |
{'FeatureParams': None, 'lookup_indices': [3, 4], 'tag': 'locl'}, | |
{'FeatureParams': None, 'lookup_indices': [5], 'tag': 'nukt'}, | |
{'FeatureParams': None, 'lookup_indices': [12, 13, 16, 18, 20, 22, 24], 'tag': 'pres'}, | |
{'FeatureParams': None, 'lookup_indices': [26, 28, 30, 32, 33], 'tag': 'psts'}, | |
{'FeatureParams': None, 'lookup_indices': [7], 'tag': 'rphf'}, | |
{'FeatureParams': None, 'lookup_indices': [10], 'tag': 'vatu'}], | |
'lookups': [{'flag': 0, | |
'subtables': [{'format': 1, 'ligatures': {('dadeva', 'viramadeva'): 'dadeva_viramadeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 2, 'subs': {'ladeva': 'ladeva.mr', 'shadeva': 'shadeva.mr'}}], | |
'type': 1}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('cadeva', 'viramadeva', 'cadeva'): 'cadeva_viramadeva_cadeva', | |
('cadeva', 'viramadeva', 'vadeva'): 'chadeva_viramadeva_vadeva', | |
('dadeva', 'viramadeva', 'badeva'): 'dadeva_viramadeva_badeva', | |
('dadeva', 'viramadeva', 'bhadeva'): 'dadeva_viramadeva_bhadeva', | |
('dadeva', 'viramadeva', 'dadeva'): 'dadeva_viramadeva_dadeva', | |
('dadeva', 'viramadeva', 'dhadeva'): 'dadeva_viramadeva_dhadeva', | |
('dadeva', 'viramadeva', 'gadeva'): 'dadeva_viramadeva_gadeva', | |
('dadeva', 'viramadeva', 'ghadeva'): 'dadeva_viramadeva_ghadeva', | |
('dadeva', 'viramadeva', 'madeva'): 'dadeva_viramadeva_madeva', | |
('dadeva', 'viramadeva', 'nadeva'): 'dadeva_viramadeva_nadeva', | |
('dadeva', 'viramadeva', 'vadeva'): 'dadeva_viramadeva_vadeva', | |
('dadeva', 'viramadeva', 'yadeva'): 'dadeva_viramadeva_yadeva', | |
('ddadeva', 'viramadeva', 'ddadeva'): 'ddadeva_viramadeva_ddadeva', | |
('ddadeva', 'viramadeva', 'ddhadeva'): 'ddadeva_viramadeva_ddhadeva', | |
('ddadeva', 'viramadeva', 'yadeva'): 'ddadeva_viramadeva_yadeva', | |
('ddhadeva', 'viramadeva', 'ddhadeva'): 'ddhadeva_viramadeva_ddhadeva', | |
('ddhadeva', 'viramadeva', 'yadeva'): 'ddhadeva_viramadeva_yadeva', | |
('gadeva', 'viramadeva', 'nadeva'): 'gadeva_viramadeva_nadeva', | |
('hadeva', 'viramadeva', 'ladeva.mr'): 'hadeva_viramadeva_ladeva', | |
('hadeva', 'viramadeva', 'madeva'): 'hadeva_viramadeva_madeva', | |
('hadeva', 'viramadeva', 'nadeva'): 'hadeva_viramadeva_nadeva', | |
('hadeva', 'viramadeva', 'nnadeva'): 'hadeva_viramadeva_nnadeva', | |
('hadeva', 'viramadeva', 'radeva'): 'hadeva_viramadeva_radeva', | |
('hadeva', 'viramadeva', 'vadeva'): 'hadeva_viramadeva_vadeva', | |
('hadeva', 'viramadeva', 'yadeva'): 'hadeva_viramadeva_yadeva', | |
('jadeva', 'viramadeva', 'jadeva'): 'jadeva_viramadeva_jadeva', | |
('kadeva', 'viramadeva', 'kadeva'): 'kadeva_viramadeva_kadeva', | |
('kadeva', 'viramadeva', 'ladeva.mr'): 'kadeva_viramadeva_ladeva', | |
('kadeva', 'viramadeva', 'vadeva'): 'kadeva_viramadeva_vadeva', | |
('ladeva.mr', 'viramadeva', 'ladeva.mr'): 'ladeva_viramadeva_ladeva', | |
('nadeva', 'viramadeva', 'nadeva'): 'nadeva_viramadeva_nadeva', | |
('ngadeva', 'viramadeva', 'gadeva'): 'ngadeva_viramadeva_gadeva', | |
('ngadeva', 'viramadeva', 'ghadeva'): 'ngadeva_viramadeva_ghadeva', | |
('ngadeva', 'viramadeva', 'kadeva'): 'ngadeva_viramadeva_kadeva', | |
('ngadeva', 'viramadeva', 'kadeva', 'viramadeva', 'ssadeva'): 'nga_virama_ka_virama_ssadeva', | |
('ngadeva', 'viramadeva', 'khadeva'): 'ngadeva_viramadeva_khadeva', | |
('ngadeva', 'viramadeva', 'madeva'): 'ngadeva_viramadeva_madeva', | |
('nyadeva', 'viramadeva', 'cadeva'): 'nyadeva_viramadeva_cadeva', | |
('nyadeva', 'viramadeva', 'jadeva'): 'nyadeva_viramadeva_jadeva', | |
('padeva', 'viramadeva', 'ladeva.mr'): 'padeva_viramadeva_ladeva', | |
('padeva', 'viramadeva', 'tadeva'): 'padeva_viramadeva_tadeva', | |
('phadeva', 'viramadeva', 'ladeva.mr'): 'phadeva_viramadeva_ladeva', | |
('shadeva.mr', 'viramadeva', 'cadeva'): 'shadeva_viramadeva_cadeva', | |
('shadeva.mr', 'viramadeva', 'ladeva.mr'): 'shadeva_viramadeva_ladeva', | |
('shadeva.mr', 'viramadeva', 'nadeva'): 'shadeva_viramadeva_nadeva', | |
('shadeva.mr', 'viramadeva', 'vadeva'): 'shadeva_viramadeva_vadeva', | |
('ttadeva', 'viramadeva', 'ttadeva'): 'ttadeva_viramadeva_ttadeva', | |
('ttadeva', 'viramadeva', 'tthadeva'): 'ttadeva_viramadeva_tthadeva', | |
('ttadeva', 'viramadeva', 'vadeva'): 'ttadeva_viramadeva_vadeva', | |
('ttadeva', 'viramadeva', 'yadeva'): 'ttadeva_viramadeva_yadeva', | |
('tthadeva', 'viramadeva', 'tthadeva'): 'tthadeva_viraamdeva_tthadeva', | |
('tthadeva', 'viramadeva', 'yadeva'): 'tthadeva_viraamdeva_yadeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 2, | |
'subs': {'eightdeva': 'eightdeva.np', | |
'fivedeva': 'fivedeva.np', | |
'jhadeva': 'jhadeva.np'}}], | |
'type': 1}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('kadeva', 'viramadeva', 'radeva'): 'kadeva_viramadeva_radeva.np'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('ddadeva', 'nuktadeva'): 'dddhadeva', | |
('ddhadeva', 'nuktadeva'): 'rhadeva', | |
('gadeva', 'nuktadeva'): 'ghhadeva', | |
('jadeva', 'nuktadeva'): 'zadeva', | |
('kadeva', 'nuktadeva'): 'qadeva', | |
('khadeva', 'nuktadeva'): 'khhadeva', | |
('lladeva', 'nuktadeva'): 'llladeva', | |
('nadeva', 'nuktadeva'): 'nnnadeva', | |
('phadeva', 'nuktadeva'): 'fadeva', | |
('radeva', 'nuktadeva'): 'rradeva', | |
('yadeva', 'nuktadeva'): 'yyadeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('jadeva', 'viramadeva', 'nyadeva'): 'jadeva_viramadeva_nyadeva', | |
('kadeva', 'viramadeva', 'ssadeva'): 'kadeva_viramadeva_ssadeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, 'ligatures': {('radeva', 'viramadeva'): 'radeva_viramadeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('hadeva', 'viramadeva_radeva'): 'hadeva_viramadeva_radeva', | |
('radeva', 'viramadeva'): 'viramadeva_radeva', | |
('viramadeva', 'radeva'): 'viramadeva_radeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('badeva', 'viramadeva'): 'badeva_viramadeva', | |
('badeva_viramadeva_radeva', 'viramadeva'): 'ba_virama_ra_viramadeva', | |
('bhadeva', 'viramadeva'): 'bhadeva_viramadeva', | |
('cadeva', 'viramadeva'): 'cadeva_viramadeva', | |
('chadeva', 'viramadeva'): 'chadeva_viramadeva', | |
('dadeva', 'viramadeva'): 'dadeva_viramadeva', | |
('ddadeva', 'viramadeva'): 'ddadeva_viramadeva', | |
('ddhadeva', 'viramadeva'): 'ddhadeva_viramadeva', | |
('dhadeva', 'viramadeva'): 'dhadeva_viramadeva', | |
('fadeva', 'viramadeva'): 'fadeva_viramadeva', | |
('gadeva', 'viramadeva'): 'gadeva_viramadeva', | |
('ghadeva', 'viramadeva'): 'ghadeva_viramadeva', | |
('ghhadeva', 'viramadeva'): 'ghhadeva_viramadeva', | |
('hadeva', 'viramadeva'): 'hadeva_viramadeva', | |
('jadeva', 'viramadeva'): 'jadeva_viramadeva', | |
('jadeva_viramadeva_nyadeva', 'viramadeva'): 'ja_virama_nya_viramadeva', | |
('jhadeva', 'viramadeva'): 'jhadeva_viramadeva', | |
('kadeva', 'viramadeva'): 'kadeva_viramadeva', | |
('kadeva_viramadeva_ssadeva', 'viramadeva'): 'ka_virama_ssa_viramadeva', | |
('khadeva', 'viramadeva'): 'khadeva_viramadeva', | |
('khhadeva', 'viramadeva'): 'khhadeva_viramadeva', | |
('ladeva', 'viramadeva'): 'ladeva_viramadeva', | |
('ladeva.mr', 'viramadeva'): 'ladeva_viramadeva', | |
('lladeva', 'viramadeva'): 'lladeva_viramadeva', | |
('llladeva', 'viramadeva'): 'llladeva_viramadeva', | |
('madeva', 'viramadeva'): 'madeva_viramadeva', | |
('nadeva', 'viramadeva'): 'nadeva_viramadeva', | |
('ngadeva', 'viramadeva'): 'ngadeva_viramadeva', | |
('nnadeva', 'viramadeva'): 'nnadeva_viramadeva', | |
('nnnadeva', 'viramadeva'): 'nnnadeva_viramadeva', | |
('nyadeva', 'viramadeva'): 'nyadeva_viramadeva', | |
('padeva', 'viramadeva'): 'padeva_viramadeva', | |
('phadeva', 'viramadeva'): 'phadeva_viramadeva', | |
('qadeva', 'viramadeva'): 'qadeva_viramadeva', | |
('radeva', 'viramadeva', 'zerowidthjoiner'): 'radeva_viramadeva.alt', | |
('sadeva', 'viramadeva'): 'sadeva_viramadeva', | |
('shadeva', 'viramadeva'): 'shadeva_viramadeva', | |
('shadeva.mr', 'viramadeva'): 'shadeva_viramadeva.mr', | |
('ssadeva', 'viramadeva'): 'ssadeva_viramadeva', | |
('tadeva', 'viramadeva'): 'tadeva_viramadeva', | |
('tadeva_viramadeva_radeva', 'viramadeva'): 'ta_virama_ra_viramadeva', | |
('thadeva', 'viramadeva'): 'thadeva_viramadeva', | |
('ttadeva', 'viramadeva'): 'ttadeva_viramadeva', | |
('tthadeva', 'viramadeva'): 'tthadeva_viramadeva', | |
('vadeva', 'viramadeva'): 'vadeva_viramadeva', | |
('yadeva', 'viramadeva'): 'yadeva_viramadeva', | |
('zadeva', 'viramadeva'): 'zadeva_viramadeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('badeva', 'viramadeva_radeva'): 'badeva_viramadeva_radeva', | |
('badeva', 'viramadeva_radeva', 'viramadeva'): 'ba_virama_ra_viramadeva', | |
('badeva_viramadeva', 'viramadeva_radeva'): 'ba_virama_ra_viramadeva', | |
('bhadeva', 'viramadeva_radeva'): 'bhadeva_viramadeva_radeva', | |
('cadeva', 'viramadeva_radeva'): 'cadeva_viramadeva_radeva', | |
('dadeva', 'viramadeva_radeva'): 'dadeva_viramadeva_radeva', | |
('dhadeva', 'viramadeva_radeva'): 'dhadeva_viramadeva_radeva', | |
('gadeva', 'viramadeva_radeva'): 'gadeva_viramadeva_radeva', | |
('ghadeva', 'viramadeva_radeva'): 'ghadeva_viramadeva_radeva', | |
('hadeva', 'viramadeva_radeva'): 'hadeva_viramadeva_radeva', | |
('jadeva', 'viramadeva_radeva'): 'jadeva_viramadeva_radeva', | |
('jadeva_viramadeva_nyadeva', 'viramadeva_radeva'): 'ja_virama_nya_virama_radeva', | |
('jhadeva', 'viramadeva_radeva'): 'jhadeva_viramadeva_radeva', | |
('kadeva', 'viramadeva_radeva'): 'kadeva_viramadeva_radeva', | |
('kadeva_viramadeva_ssadeva', 'viramadeva_radeva'): 'ka_virama_ssa_virama_radeva', | |
('khadeva', 'viramadeva_radeva'): 'khadeva_viramadeva_radeva', | |
('ladeva', 'viramadeva_radeva'): 'ladeva_viramadeva_radeva', | |
('ladeva.mr', 'viramadeva_radeva'): 'ladeva_viramadeva_radeva', | |
('madeva', 'viramadeva_radeva'): 'madeva_viramadeva_radeva', | |
('nadeva', 'viramadeva_radeva'): 'nadeva_viramadeva_radeva', | |
('nnadeva', 'viramadeva_radeva'): 'nnadeva_viramadeva_radeva', | |
('nyadeva', 'viramadeva_radeva'): 'nyadeva_viramadeva_radeva', | |
('padeva', 'viramadeva_radeva'): 'padeva_viramadeva_radeva', | |
('phadeva', 'viramadeva_radeva'): 'phadeva_viramadeva_radeva', | |
('sadeva', 'viramadeva_radeva'): 'sadeva_viramadeva_radeva', | |
('shadeva', 'viramadeva_radeva'): 'shadeva_viramadeva_radeva', | |
('shadeva.mr', 'viramadeva_radeva'): 'shadeva_viramadeva_radeva', | |
('shadeva_viramadeva.alt', 'radeva'): 'shadeva_viramadeva_radeva', | |
('ssadeva', 'viramadeva_radeva'): 'ssadeva_viramadeva_radeva', | |
('tadeva', 'viramadeva_radeva'): 'tadeva_viramadeva_radeva', | |
('tadeva', 'viramadeva_radeva', 'viramadeva'): 'ta_virama_ra_viramadeva', | |
('tadeva_viramadeva', 'viramadeva_radeva'): 'ta_virama_ra_viramadeva', | |
('thadeva', 'viramadeva_radeva'): 'thadeva_viramadeva_radeva', | |
('vadeva', 'viramadeva_radeva'): 'vadeva_viramadeva_radeva', | |
('yadeva', 'viramadeva_radeva'): 'yadeva_viramadeva_radeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('dadeva', 'viramadeva', 'badeva'): 'dadeva_viramadeva_badeva', | |
('dadeva', 'viramadeva', 'bhadeva'): 'dadeva_viramadeva_bhadeva', | |
('dadeva', 'viramadeva', 'dadeva'): 'dadeva_viramadeva_dadeva', | |
('dadeva', 'viramadeva', 'dhadeva'): 'dadeva_viramadeva_dhadeva', | |
('dadeva', 'viramadeva', 'gadeva'): 'dadeva_viramadeva_gadeva', | |
('dadeva', 'viramadeva', 'ghadeva'): 'dadeva_viramadeva_ghadeva', | |
('dadeva', 'viramadeva', 'madeva'): 'dadeva_viramadeva_madeva', | |
('dadeva', 'viramadeva', 'nadeva'): 'dadeva_viramadeva_nadeva', | |
('dadeva', 'viramadeva', 'vadeva'): 'dadeva_viramadeva_vadeva', | |
('dadeva', 'viramadeva', 'yadeva'): 'dadeva_viramadeva_yadeva', | |
('dadeva_viramadeva', 'dhadeva_viramadeva_radeva', 'viramadeva', 'yadeva'): 'da_ddha_ra_yadeva', | |
('dadeva_viramadeva_dhadeva', 'viramadeva_radeva', 'viramadeva', 'yadeva'): 'da_ddha_ra_yadeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('cadeva_viramadeva', 'cadeva'): 'cadeva_viramadeva_cadeva', | |
('chadeva_viramadeva', 'vadeva'): 'chadeva_viramadeva_vadeva', | |
('dadeva_viramadeva', 'badeva'): 'dadeva_viramadeva_badeva', | |
('dadeva_viramadeva', 'bhadeva'): 'dadeva_viramadeva_bhadeva', | |
('dadeva_viramadeva', 'dadeva'): 'dadeva_viramadeva_dadeva', | |
('dadeva_viramadeva', 'dhadeva'): 'dadeva_viramadeva_dhadeva', | |
('dadeva_viramadeva', 'gadeva'): 'dadeva_viramadeva_gadeva', | |
('dadeva_viramadeva', 'ghadeva'): 'dadeva_viramadeva_ghadeva', | |
('dadeva_viramadeva', 'madeva'): 'dadeva_viramadeva_madeva', | |
('dadeva_viramadeva', 'nadeva'): 'dadeva_viramadeva_nadeva', | |
('dadeva_viramadeva', 'vadeva'): 'dadeva_viramadeva_vadeva', | |
('dadeva_viramadeva', 'yadeva'): 'dadeva_viramadeva_yadeva', | |
('ddadeva_viramadeva', 'ddadeva'): 'ddadeva_viramadeva_ddadeva', | |
('ddadeva_viramadeva', 'ddhadeva'): 'ddadeva_viramadeva_ddhadeva', | |
('ddadeva_viramadeva', 'yadeva'): 'ddadeva_viramadeva_yadeva', | |
('ddhadeva_viramadeva', 'ddhadeva'): 'ddhadeva_viramadeva_ddhadeva', | |
('ddhadeva_viramadeva', 'yadeva'): 'ddhadeva_viramadeva_yadeva', | |
('gadeva_viramadeva', 'nadeva'): 'gadeva_viramadeva_nadeva', | |
('hadeva_viramadeva', 'ladeva'): 'hadeva_viramadeva_ladeva', | |
('hadeva_viramadeva', 'madeva'): 'hadeva_viramadeva_madeva', | |
('hadeva_viramadeva', 'nadeva'): 'hadeva_viramadeva_nadeva', | |
('hadeva_viramadeva', 'nnadeva'): 'hadeva_viramadeva_nnadeva', | |
('hadeva_viramadeva', 'vadeva'): 'hadeva_viramadeva_vadeva', | |
('hadeva_viramadeva', 'yadeva'): 'hadeva_viramadeva_yadeva', | |
('jadeva_viramadeva', 'jadeva'): 'jadeva_viramadeva_jadeva', | |
('jadeva_viramadeva', 'jadeva_viramadeva'): 'ja_virama_ja_viramadeva', | |
('kadeva_viramadeva', 'kadeva'): 'kadeva_viramadeva_kadeva', | |
('kadeva_viramadeva', 'ladeva'): 'kadeva_viramadeva_ladeva', | |
('kadeva_viramadeva', 'tadeva'): 'kadeva_viramadeva_tadeva', | |
('kadeva_viramadeva', 'vadeva'): 'kadeva_viramadeva_vadeva', | |
('ladeva_viramadeva', 'ladeva'): 'ladeva_viramadeva_ladeva', | |
('nadeva_viramadeva', 'nadeva'): 'nadeva_viramadeva_nadeva', | |
('ngadeva_viramadeva', 'gadeva'): 'ngadeva_viramadeva_gadeva', | |
('ngadeva_viramadeva', 'ghadeva'): 'ngadeva_viramadeva_ghadeva', | |
('ngadeva_viramadeva', 'kadeva'): 'ngadeva_viramadeva_kadeva', | |
('ngadeva_viramadeva', 'kadeva_viramadeva_ssadeva'): 'nga_virama_ka_virama_ssadeva', | |
('ngadeva_viramadeva', 'khadeva'): 'ngadeva_viramadeva_khadeva', | |
('ngadeva_viramadeva', 'madeva'): 'ngadeva_viramadeva_madeva', | |
('nyadeva_viramadeva', 'cadeva'): 'nyadeva_viramadeva_cadeva', | |
('nyadeva_viramadeva', 'jadeva'): 'nyadeva_viramadeva_jadeva', | |
('padeva_viramadeva', 'ladeva'): 'padeva_viramadeva_ladeva', | |
('padeva_viramadeva', 'tadeva'): 'padeva_viramadeva_tadeva', | |
('phadeva_viramadeva', 'ladeva'): 'phadeva_viramadeva_ladeva', | |
('sadeva_viramadeva', 'tadeva_viramadeva_radeva'): 'sa_virama_ta_virama_radeva', | |
('shadeva', 'rvocalicsigndeva'): 'sha_virama_rvocalicdeva', | |
('shadeva', 'viramadeva', 'radeva'): 'shadeva_viramadeva_radeva', | |
('shadeva.mr', 'rvocalicsigndeva'): 'sha_virama_rvocalicdeva', | |
('shadeva_viramadeva', 'cadeva'): 'shadeva_viramadeva_cadeva', | |
('shadeva_viramadeva', 'ladeva'): 'shadeva_viramadeva_ladeva', | |
('shadeva_viramadeva', 'nadeva'): 'shadeva_viramadeva_nadeva', | |
('shadeva_viramadeva', 'vadeva'): 'shadeva_viramadeva_vadeva', | |
('shadeva_viramadeva.mr', 'radeva'): 'shadeva_viramadeva_radeva', | |
('ssadeva_viramadeva', 'ttadeva'): 'ssadeva_viramadeva_ttadeva', | |
('ssadeva_viramadeva', 'tthadeva'): 'ssadeva_viramadeva_tthadeva', | |
('tadeva_viramadeva', 'tadeva'): 'tadeva_viramadeva_tadeva', | |
('tadeva_viramadeva', 'tadeva_viramadeva'): 'ta_virama_ta_viramadeva', | |
('ttadeva_viramadeva', 'ttadeva'): 'ttadeva_viramadeva_ttadeva', | |
('ttadeva_viramadeva', 'tthadeva'): 'ttadeva_viramadeva_tthadeva', | |
('ttadeva_viramadeva', 'vadeva'): 'ttadeva_viramadeva_vadeva', | |
('ttadeva_viramadeva', 'yadeva'): 'ttadeva_viramadeva_yadeva', | |
('tthadeva_viramadeva', 'tthadeva'): 'tthadeva_viraamdeva_tthadeva', | |
('tthadeva_viramadeva', 'yadeva'): 'tthadeva_viraamdeva_yadeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'backtrack': [], | |
'format': 3, | |
'input': [('isigndeva',)], | |
'lookahead': [('khadeva', | |
'ladeva', | |
'khhadeva', | |
'tadeva_viramadeva_tadeva', | |
'gadeva_viramadeva', | |
'ghhadeva_viramadeva', | |
'khadeva_viramadeva_radeva', | |
'sadeva_viramadeva_radeva', | |
'jadeva_viramadeva_jadeva', | |
'hadeva_viramadeva_yadeva', | |
'sa_virama_ta_virama_radeva', | |
'ladeva_viramadeva_radeva')], | |
'lookup_indices': [14]}, | |
{'backtrack': [], | |
'format': 3, | |
'input': [('isigndeva',)], | |
'lookahead': [('radeva', 'rradeva')], | |
'lookup_indices': [15]}], | |
'type': 6}, | |
{'flag': 0, 'subtables': [{'format': 1, 'subs': {'isigndeva': 'isigndeva.alt1'}}], 'type': 1}, | |
{'flag': 0, 'subtables': [{'format': 1, 'subs': {'isigndeva': 'isigndeva.alt3'}}], 'type': 1}, | |
{'flag': 0, | |
'subtables': [{'backtrack': [], | |
'format': 3, | |
'input': [('isigndeva',)], | |
'lookahead': [('kadeva_viramadeva', | |
'khadeva_viramadeva', | |
'ghadeva_viramadeva', | |
'ngadeva_viramadeva', | |
'cadeva_viramadeva', | |
'chadeva_viramadeva', | |
'jadeva_viramadeva', | |
'jhadeva_viramadeva', | |
'nyadeva_viramadeva', | |
'ttadeva_viramadeva', | |
'tthadeva_viramadeva', | |
'ddadeva_viramadeva', | |
'ddhadeva_viramadeva', | |
'nnadeva_viramadeva', | |
'tadeva_viramadeva', | |
'thadeva_viramadeva', | |
'dadeva_viramadeva', | |
'dhadeva_viramadeva', | |
'nadeva_viramadeva', | |
'nnnadeva_viramadeva', | |
'padeva_viramadeva', | |
'phadeva_viramadeva', | |
'badeva_viramadeva', | |
'bhadeva_viramadeva', | |
'madeva_viramadeva', | |
'yadeva_viramadeva', | |
'ladeva_viramadeva', | |
'lladeva_viramadeva', | |
'llladeva_viramadeva', | |
'vadeva_viramadeva', | |
'shadeva_viramadeva', | |
'ssadeva_viramadeva', | |
'sadeva_viramadeva', | |
'qadeva_viramadeva', | |
'khhadeva_viramadeva', | |
'zadeva_viramadeva', | |
'fadeva_viramadeva', | |
'shadeva_viramadeva.alt', | |
'ta_virama_ra_viramadeva', | |
'ta_virama_ta_viramadeva', | |
'ka_virama_ssa_viramadeva', | |
'ja_virama_nya_viramadeva', | |
'yadeva_alt', | |
'ttadeva_viramadeva_yadeva', | |
'tthadeva_viraamdeva_yadeva', | |
'ddadeva_viramadeva_yadeva', | |
'ddhadeva_viramadeva_yadeva', | |
'da_ddha_ra_yadeva', | |
'shadeva_viramadeva.mr')], | |
'lookup_indices': [17]}], | |
'type': 6}, | |
{'flag': 0, 'subtables': [{'format': 1, 'subs': {'isigndeva': 'isigndeva.alt2'}}], 'type': 1}, | |
{'flag': 0, | |
'subtables': [{'backtrack': [], | |
'format': 3, | |
'input': [('isigndeva',)], | |
'lookahead': [('ghadeva', | |
'ngadeva', | |
'cadeva', | |
'ddadeva', | |
'tadeva', | |
'dhadeva', | |
'yadeva', | |
'kadeva_viramadeva_ssadeva', | |
'ngadeva_viramadeva_kadeva', | |
'ngadeva_viramadeva_khadeva', | |
'ngadeva_viramadeva_gadeva', | |
'ngadeva_viramadeva_ghadeva', | |
'ngadeva_viramadeva_madeva', | |
'nga_virama_ka_virama_ssadeva', | |
'cadeva_viramadeva_cadeva', | |
'chadeva_viramadeva_vadeva', | |
'ddadeva_viramadeva_ddadeva', | |
'ddadeva_viramadeva_ddhadeva', | |
'dadeva_viramadeva_ghadeva', | |
'dadeva_viramadeva_dhadeva', | |
'nadeva_viramadeva_nadeva', | |
'shadeva_viramadeva_cadeva', | |
'shadeva_viramadeva_nadeva', | |
'shadeva_viramadeva_ladeva', | |
'shadeva_viramadeva_vadeva', | |
'ghadeva_viramadeva_radeva', | |
'cadeva_viramadeva_radeva', | |
'dhadeva_viramadeva_radeva', | |
'nadeva_viramadeva_radeva', | |
'ssadeva_viramadeva_radeva', | |
'ka_virama_ssa_virama_radeva')], | |
'lookup_indices': [19]}], | |
'type': 6}, | |
{'flag': 0, 'subtables': [{'format': 1, 'subs': {'isigndeva': 'isigndeva.alt4'}}], 'type': 1}, | |
{'flag': 0, | |
'subtables': [{'backtrack': [], | |
'format': 3, | |
'input': [('isigndeva',)], | |
'lookahead': [('chadeva', | |
'nnadeva', | |
'thadeva', | |
'bhadeva', | |
'lladeva', | |
'llladeva', | |
'shadeva', | |
'shadeva_viramadeva_radeva', | |
'jadeva_viramadeva_nyadeva', | |
'bhadeva_viramadeva_radeva', | |
'thadeva_viramadeva_radeva', | |
'ja_virama_nya_virama_radeva', | |
'shadeva.mr')], | |
'lookup_indices': [21]}], | |
'type': 6}, | |
{'flag': 0, 'subtables': [{'format': 1, 'subs': {'isigndeva': 'isigndeva.tha'}}], 'type': 1}, | |
{'flag': 0, | |
'subtables': [{'backtrack': [], | |
'format': 3, | |
'input': [('isigndeva',)], | |
'lookahead': [('jadeva', | |
'jhadeva', | |
'nyadeva', | |
'sadeva', | |
'jadeva_viramadeva_radeva', | |
'jhadeva_viramadeva_radeva', | |
'nyadeva_viramadeva_cadeva', | |
'nyadeva_viramadeva_jadeva', | |
'dadeva_viramadeva_madeva', | |
'dadeva_viramadeva_yadeva', | |
'ladeva_viramadeva_ladeva', | |
'hadeva_viramadeva_madeva', | |
'ladeva.mr')], | |
'lookup_indices': [23]}], | |
'type': 6}, | |
{'flag': 0, 'subtables': [{'format': 1, 'subs': {'isigndeva': 'isigndeva.ja'}}], 'type': 1}, | |
{'flag': 6, | |
'subtables': [{'format': 1, | |
'ligatures': {('isigndeva', 'anusvaradeva'): 'isigndeva_anusvaradeva', | |
('isigndeva', 'radeva_viramadeva'): 'isign_ra_virama', | |
('isigndeva', 'radeva_viramadeva', 'anusvaradeva'): 'isign_ra_virama_anusvara', | |
('isigndeva.alt1', 'anusvaradeva'): 'isigndeva_anusvara.alt1', | |
('isigndeva.alt1', 'radeva_viramadeva'): 'isign_ra_virama.alt1', | |
('isigndeva.alt1', 'radeva_viramadeva', 'anusvaradeva'): 'isign_ra_virama_anusvara.alt1', | |
('isigndeva.alt2', 'anusvaradeva'): 'isigndeva_anusvara.alt2', | |
('isigndeva.alt2', 'radeva_viramadeva'): 'isign_ra_virama.alt2', | |
('isigndeva.alt2', 'radeva_viramadeva', 'anusvaradeva'): 'isign_ra_virama_anusvara.alt2', | |
('isigndeva.alt3', 'anusvaradeva'): 'isigndeva_anusvaradeva.alt3', | |
('isigndeva.alt3', 'radeva_viramadeva'): 'isign_ra_virama.alt3', | |
('isigndeva.alt3', 'radeva_viramadeva', 'anusvaradeva'): 'isign_ra_virama_anusvara.alt3', | |
('isigndeva.alt4', 'anusvaradeva'): 'isigndeva_anusvaradeva.alt4', | |
('isigndeva.alt4', 'radeva_viramadeva'): 'isign_ra_virama.alt4', | |
('isigndeva.alt4', 'radeva_viramadeva', 'anusvaradeva'): 'isign_ra_virama_anusvara.alt4', | |
('isigndeva.ja', 'anusvaradeva'): 'isigndeva_anusvaradeva.ja', | |
('isigndeva.tha', 'anusvaradeva'): 'isigndeva_anusvara.tha', | |
('isigndeva.tha', 'radeva_viramadeva'): 'isign_ra_virama.ja', | |
('isigndeva.tha', 'radeva_viramadeva', 'anusvaradeva'): 'isign_ra_virama_anusvara.tha'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('aisigndeva', 'anusvaradeva'): 'aisigndeva_anusvaradeva', | |
('aisigndeva', 'radeva_viramadeva'): 'aisign_ra_virama.alt1', | |
('aisigndeva', 'radeva_viramadeva', 'anusvaradeva'): 'aisign_ra_virama_anusvara', | |
('ausigndeva', 'anusvaradeva'): 'ausigndeva_anusvaradeva', | |
('ausigndeva', 'radeva_viramadeva'): 'ausign_ra_virama.alt1', | |
('ausigndeva', 'radeva_viramadeva', 'anusvaradeva'): 'ausign_ra_virama_anusvara', | |
('esigndeva', 'anusvaradeva'): 'esigndeva_anusvaradeva', | |
('esigndeva', 'radeva_viramadeva'): 'esign_ra_virama.alt1', | |
('esigndeva', 'radeva_viramadeva', 'anusvaradeva'): 'esign_ra_virama_anusvara', | |
('osigndeva', 'anusvaradeva'): 'osigndeva_anusvaradeva', | |
('osigndeva', 'radeva_viramadeva'): 'osign_ra_virama.alt1', | |
('osigndeva', 'radeva_viramadeva', 'anusvaradeva'): 'osign_ra_virama_anusvara', | |
('radeva_viramadeva', 'anusvaradeva'): 'radeva_viramadeva_anusvaradeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('iisigndeva', 'anusvaradeva'): 'iisigndeva_anusvaradeva', | |
('iisigndeva', 'radeva_viramadeva'): 'iisigndeva_ra_virama', | |
('iisigndeva', 'radeva_viramadeva_anusvaradeva'): 'iisign_ra_virama_anusvara', | |
('iisigndeva.alt1', 'anusvaradeva'): 'iisigndeva_anusvaradeva.alt1', | |
('iisigndeva.alt1', 'radeva_viramadeva'): 'iisigndeva_ra_virama.alt1', | |
('iisigndeva.alt1', 'radeva_viramadeva_anusvaradeva'): 'iisign_ra_virama_anusvara.alt1', | |
('isigndeva', 'anusvaradeva'): 'isigndeva_anusvaradeva', | |
('isigndeva', 'radeva_viramadeva'): 'isign_ra_virama', | |
('isigndeva', 'radeva_viramadeva_anusvaradeva'): 'isign_ra_virama_anusvara'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('dadeva', 'rvocalicsigndeva'): 'dadeva_rvocalicsigndeva', | |
('hadeva', 'rvocalicsigndeva'): 'hadeva_rvocalicdeva', | |
('viramadeva_radeva', 'usigndeva'): 'vattudeva_ulowdeva', | |
('viramadeva_radeva', 'uusigndeva'): 'vattudeva_uulowdeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'backtrack': [('rvocalicdeva', | |
'kadeva', | |
'phadeva', | |
'qadeva', | |
'fadeva', | |
'rrvocalicdeva', | |
'phadeva_radeva_nuktadeva', | |
'phadeva_viramadeva_radeva', | |
'kadeva_viramadeva_kadeva', | |
'kadeva_viramadeva_tadeva', | |
'kadeva_viramadeva_ladeva', | |
'kadeva_viramadeva_vadeva', | |
'phadeva_viramadeva_ladeva')], | |
'format': 3, | |
'input': [('iisigndeva', | |
'iisigndeva_anusvaradeva', | |
'iisigndeva_ra_virama', | |
'iisign_ra_virama_anusvara')], | |
'lookahead': [], | |
'lookup_indices': [29]}], | |
'type': 6}, | |
{'flag': 0, | |
'subtables': [{'format': 2, | |
'subs': {'iisign_ra_virama_anusvara': 'iisign_ra_virama_anusvara.alt1', | |
'iisigndeva': 'iisigndeva.alt1', | |
'iisigndeva_anusvaradeva': 'iisign_ra_virama_anusvara.alt1', | |
'iisigndeva_ra_virama': 'iisigndeva_ra_virama.alt1'}}], | |
'type': 1}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('radeva', 'usigndeva'): 'radeva_usigndeva', | |
('radeva', 'uusigndeva'): 'radeva_uusigndeva'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'ligatures': {('rradeva', 'viramadeva'): 'radeva_viramadeva.alt', | |
('viramadeva_radeva', 'zerowidthjoiner'): 'radeva_viramadeva.alt'}}], | |
'type': 4}, | |
{'flag': 0, | |
'subtables': [{'format': 1, | |
'rules': [{'backtrack': [], | |
'input': ['rradeva', 'viramadeva'], | |
'lookahead': ['yadeva'], | |
'lookup_indices': [31, 31]}]}, | |
{'format': 1, | |
'rules': [{'backtrack': [], | |
'input': ['rradeva', 'viramadeva'], | |
'lookahead': ['hadeva'], | |
'lookup_indices': [31, 31]}]}, | |
{'format': 1, | |
'rules': [{'backtrack': [], | |
'input': ['viramadeva_radeva', 'zerowidthjoiner'], | |
'lookahead': ['yadeva'], | |
'lookup_indices': [31, 31]}]}, | |
{'format': 1, | |
'rules': [{'backtrack': [], | |
'input': ['viramadeva_radeva', 'zerowidthjoiner'], | |
'lookahead': ['hadeva'], | |
'lookup_indices': [31, 31]}]}], | |
'type': 6}, | |
{'flag': 0, | |
'subtables': [{'backtrack': [], | |
'format': 3, | |
'input': [('isign_ra_virama_anusvara.alt2', | |
'isign_ra_virama.alt2', | |
'isigndeva.alt2', | |
'isigndeva_anusvara.alt2')], | |
'lookahead': [('vadeva_viramadeva',), ('hadeva',)], | |
'lookup_indices': [34]}], | |
'type': 6}, | |
{'flag': 0, | |
'subtables': [{'format': 2, | |
'subs': {'isign_ra_virama.alt2': 'isign_ra_virama.alt1', | |
'isign_ra_virama_anusvara.alt2': 'isign_ra_virama_anusvara.alt1', | |
'isigndeva.alt2': 'isigndeva.alt1', | |
'isigndeva_anusvara.alt2': 'isigndeva_anusvara.alt1'}}], | |
'type': 1}], | |
'version': 65536} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment