Skip to content

Instantly share code, notes, and snippets.

@yelinaung
Created May 18, 2014 17:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yelinaung/31784a3b02b62b4ed63e to your computer and use it in GitHub Desktop.
Save yelinaung/31784a3b02b62b4ed63e to your computer and use it in GitHub Desktop.
def uni512zg1(input_text)
output_text = input_text
output_text = output_text.gsub('\u104E\u1004\u103A\u1038','\u104E' )
output_text = output_text.gsub('\u102B\u103A','\u105A' )
output_text = output_text.gsub('\u102D\u1036','\u108E' )
output_text = output_text.gsub('\u103F','\u1086' )
output_text = output_text.gsub('(?<=\u102F)\u1037','\u1094' )
output_text = output_text.gsub('(?<=\u102F\u1036)\u1037','\u1094' )
output_text = output_text.gsub('(?<=\u1030)\u1037','\u1094' )
output_text = output_text.gsub('(?<=\u1030\u1036)\u1037','\u1094' )
output_text = output_text.gsub('(?<=\u1014)\u1037','\u1094' )
output_text = output_text.gsub('(?<=\u1014[\u103A\u1032])\u1037','\u1094' )
output_text = output_text.gsub('(?<=\u103B)\u1037','\u1095' )
output_text = output_text.gsub('(?<=\u103B[\u1032\u1036])\u1037','\u1095' )
output_text = output_text.gsub('(?<=\u103D)\u1037','\u1095' )
output_text = output_text.gsub('(?<=\u103D[\u1032])\u1037','\u1095' )
output_text = output_text.gsub('(?<=[\u103B\u103C\u103D])\u102F','\u1033' )
output_text = output_text.gsub('(?<=[\u103B\u103C\u103D][\u102D\u1036])\u102F','\u1033' )
output_text = output_text.gsub('(?<=(\u1039[\u1000-\u1021]))\u102F','\u1033' )
output_text = output_text.gsub('(?<=(\u1039[\u1000-\u1021])[\u102D\u1036])\u102F','\u1033' )
output_text = output_text.gsub('(?<=[\u100A\u100C\u1020\u1025\u1029])\u102F','\u1033' )
output_text = output_text.gsub('(?<=[\u100A\u100C\u1020\u1025\u1029][\u102D\u1036])\u102F','\u1033' )
output_text = output_text.gsub('(?<=[\u103B\u103C])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u103B\u103C][\u103D])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u103B\u103C][\u103E])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u103B\u103C][\u102D\u1036]])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u103B\u103C][\u103D][\u103E])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u103B\u103C][\u103D][\u102D\u1036]])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u103B\u103C][\u103E][\u102D\u1036]])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u103B\u103C][\u103D][\u103E][\u102D\u1036])\u1030','\u1034' )
output_text = output_text.gsub('(?<=(\u1039[\u1000-\u1021]))\u1030','\u1034' )
output_text = output_text.gsub('(?<=(\u1039[\u1000-\u1021])[\u102D\u1036])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u100A\u100C\u1020\u1025\u1029])\u1030','\u1034' )
output_text = output_text.gsub('(?<=[\u100A\u100C\u1020\u1025\u1029][\u102D\u1036])\u1030','\u1034' )
output_text = output_text.gsub('(?<=\u103C)\u103E','\u1087' )
output_text = output_text.gsub('\u1009(?=[\u103A])','\u1025' )
output_text = output_text.gsub('\u1009(?=\u1039[\u1000-\u1021])','\u1025' )
output_text = output_text.gsub('([\u1000-\u1021\u1029])((?:\u1039[\u1000-\u1021])?)((?:[\u103B-\u103E\u1087]*)?)\u1031','\u1031$1$2$3' )
output_text = output_text.gsub('([\u1000-\u1021\u1029])((?:\u1039[\u1000-\u1021\u1000-\u1021])?)(\u103C)','$3$1$2' )
output_text = output_text.gsub('\u1004\u103A\u1039','\u1064' )
output_text = output_text.gsub('(\u1064)([\u1031]?)([\u103C]?)([\u1000-\u1021])\u102D','$2$3$4\u108B' )
output_text = output_text.gsub('(\u1064)(\u1031)?(\u103C)?([\u1000-\u1021])\u102E','$2$3$4\u108C' )
output_text = output_text.gsub('(\u1064)(\u1031)?(\u103C)?([\u1000-\u1021])\u1036','$2$3$4\u108D' )
output_text = output_text.gsub('(\u1064)(\u1031)?(\u103C)?([\u1000-\u1021])','$2$3$4\u1064' )
output_text = output_text.gsub('\u100A(?=[\u1039\u102F\u1030])','\u106B' )
output_text = output_text.gsub('\u100A','\u100A' )
output_text = output_text.gsub('\u101B(?=[\u102F\u1030])','\u1090' )
output_text = output_text.gsub('\u101B','\u101B' )
output_text = output_text.gsub('\u1014(?=[\u1039\u103D\u103E\u102F\u1030])','\u108F' )
output_text = output_text.gsub('\u1014','\u1014' )
output_text = output_text.gsub('\u1039\u1000','\u1060' )
output_text = output_text.gsub('\u1039\u1001','\u1061' )
output_text = output_text.gsub('\u1039\u1002','\u1062' )
output_text = output_text.gsub('\u1039\u1003','\u1063' )
output_text = output_text.gsub('\u1039\u1005','\u1065' )
output_text = output_text.gsub('\u1039\u1006','\u1066' )
output_text = output_text.gsub('(?<=[\u1001\u1002\u1004\u1005\u1007\u1012\u1013\u108F\u1015\u1016\u1017\u1019\u101D])\u1066','\u1067' )
output_text = output_text.gsub('\u1039\u1007','\u1068' )
output_text = output_text.gsub('\u1039\u1008','\u1069' )
output_text = output_text.gsub('\u1039\u100F','\u1070' )
output_text = output_text.gsub('\u1039\u1010','\u1071' )
output_text = output_text.gsub('(?<=[\u1001\u1002\u1004\u1005\u1007\u1012\u1013\u108F\u1015\u1016\u1017\u1019\u101D])\u1071','\u1072' )
output_text = output_text.gsub('\u1039\u1011','\u1073' )
output_text = output_text.gsub('(?<=[\u1001\u1002\u1004\u1005\u1007\u1012\u1013\u108F\u1015\u1016\u1017\u1019\u101D])\u1073','\u1074' )
output_text = output_text.gsub('\u1039\u1012','\u1075' )
output_text = output_text.gsub('\u1039\u1013','\u1076' )
output_text = output_text.gsub('\u1039\u1014','\u1077' )
output_text = output_text.gsub('\u1039\u1015','\u1078' )
output_text = output_text.gsub('\u1039\u1016','\u1079' )
output_text = output_text.gsub('\u1039\u1017','\u107A' )
output_text = output_text.gsub('\u1039\u1018','\u107B' )
output_text = output_text.gsub('\u1039\u1019','\u107C' )
output_text = output_text.gsub('\u1039\u101C','\u1085' )
output_text = output_text.gsub('\u100F\u1039\u100D','\u1091' )
output_text = output_text.gsub('\u100B\u1039\u100C','\u1092' )
output_text = output_text.gsub('\u1039\u100C','\u106D' )
output_text = output_text.gsub('\u100B\u1039\u100B','\u1097' )
output_text = output_text.gsub('\u1039\u100B','\u106C' )
output_text = output_text.gsub('\u100E\u1039\u100D','\u106F' )
output_text = output_text.gsub('\u100D\u1039\u100D','\u106E' )
output_text = output_text.gsub('\u1009(?=\u103A)','\u1025' )
output_text = output_text.gsub('\u1025(?=[\u1039\u102F\u1030])','\u106A' )
output_text = output_text.gsub('\u1025','\u1025' )
output_text = output_text.gsub('\u103A','\u1039' )
output_text = output_text.gsub('\u103B\u103D\u103E','\u107D\u108A' )
output_text = output_text.gsub('\u103D\u103E','\u108A' )
output_text = output_text.gsub('\u103B','\u103A' )
output_text = output_text.gsub('\u103C','\u103B' )
output_text = output_text.gsub('\u103D','\u103C' )
output_text = output_text.gsub('\u103E','\u103D' )
output_text = output_text.gsub('\u103A(?=[\u103C\u103D\u108A])','\u107D' )
output_text = output_text.gsub('(?<=\u100A(?:[\u102D\u102E\u1036\u108B\u108C\u108D\u108E]))\u103D','\u1087' )
output_text = output_text.gsub('(?<=\u100A)\u103D','\u1087' )
output_text = output_text.gsub('\u103B(?=[\u1000\u1003\u1006\u100F\u1010\u1011\u1018\u101A\u101C\u101E\u101F\u1021])','\u107E' )
output_text = output_text.gsub('\u107E([\u1000-\u1021\u108F])(?=[\u102D\u102E\u1036\u108B\u108C\u108D\u108E])','\u1080$1' )
output_text = output_text.gsub('\u107E([\u1000-\u1021\u108F])(?=[\u103C\u108A])','\u1082$1' )
output_text = output_text.gsub('\u103B([\u1000-\u1021\u108F])(?=[\u102D\u102E\u1036\u108B\u108C\u108D\u108E])','\u107F$1' )
output_text = output_text.gsub('\u103B([\u1000-\u1021\u108F])(?=[\u103C\u108A])','\u1081$1' )
output_text = output_text.gsub('(?<=\u1014)\u1037','\u1094' )
output_text = output_text.gsub('(?<=\u1014[\u103A\u1032])\u1037','\u1094' )
output_text = output_text.gsub('(?<=\u1033)\u1094','\u1095' )
output_text = output_text.gsub('(?<=\u1033[\u1036])\u1094','\u1095' )
output_text = output_text.gsub('(?<=\u1034)\u1094','\u1095' )
output_text = output_text.gsub('(?<=\u1034[\u1036])\u1094','\u1095' )
output_text = output_text.gsub('(?<=[\u103C\u103D\u108A])\u1037','\u1095' )
output_text = output_text.gsub('(?<=[\u103C\u103D\u108A][\u1032])\u1037','\u1095' )
return output_text
end
def zg12uni51(input_text)
output_text = input_text
output_text = output_text.gsub('\u106A','\u1009' )
output_text = output_text.gsub('\u1025(?=[\u1039\u102C])','\u1009' )
output_text = output_text.gsub('\u1025\u102E','\u1026' )
output_text = output_text.gsub('\u106B','\u100A' )
output_text = output_text.gsub('\u1090','\u101B' )
output_text = output_text.gsub('\u1040','\u1040' )
output_text = output_text.gsub('\u108F','\u1014' )
output_text = output_text.gsub('\u1012','\u1012' )
output_text = output_text.gsub('\u1013','\u1013' )
output_text = output_text.gsub('[\u103D\u1087]','\u103E' )
output_text = output_text.gsub('\u103C','\u103D' )
output_text = output_text.gsub('[\u103B\u107E\u107F\u1080\u1081\u1082\u1083\u1084]','\u103C' )
output_text = output_text.gsub('[\u103A\u107D]','\u103B' )
output_text = output_text.gsub('\u103E\u103B','\u103B\u103E' )
output_text = output_text.gsub('\u108A','\u103D\u103E' )
output_text = output_text.gsub('\u103E\u103D','\u103D\u103E' )
output_text = output_text.gsub('((?:\u1031)?)((?:\u103C)?)([\u1000-\u1021])\u1064','\u1064$1$2$3' )
output_text = output_text.gsub('((?:\u1031)?)((?:\u103C)?)([\u1000-\u1021])\u108B','\u1064$1$2$3\u102D' )
output_text = output_text.gsub('((?:\u1031)?)((?:\u103C)?)([\u1000-\u1021])\u108C','\u1064$1$2$3\u102E' )
output_text = output_text.gsub('((?:\u1031)?)((?:\u103C)?)([\u1000-\u1021])\u108D','\u1064$1$2$3\u1036' )
output_text = output_text.gsub('\u105A','\u102B\u103A' )
output_text = output_text.gsub('\u108E','\u102D\u1036' )
output_text = output_text.gsub('\u1033','\u102F' )
output_text = output_text.gsub('\u1034','\u1030' )
output_text = output_text.gsub('\u1088','\u103E\u102F' )
output_text = output_text.gsub('\u1089','\u103E\u1030' )
output_text = output_text.gsub('\u1039','\u103A' )
output_text = output_text.gsub('[\u1094\u1095]','\u1037' )
output_text = output_text.gsub('([\u1000-\u1021])([\u102C\u102D\u102E\u1032\u1036]){1,2}([\u1060\u1061\u1062\u1063\u1065\u1066\u1067\u1068\u1069\u1070\u1071\u1072\u1073\u1074\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u1085])','$1$3$2' )
output_text = output_text.gsub('\u1064','\u1004\u103A\u1039' )
output_text = output_text.gsub('\u104E','\u104E\u1004\u103A\u1038' )
output_text = output_text.gsub('\u1086','\u103F' )
output_text = output_text.gsub('\u1060','\u1039\u1000' )
output_text = output_text.gsub('\u1061','\u1039\u1001' )
output_text = output_text.gsub('\u1062','\u1039\u1002' )
output_text = output_text.gsub('\u1063','\u1039\u1003' )
output_text = output_text.gsub('\u1065','\u1039\u1005' )
output_text = output_text.gsub('[\u1066\u1067]','\u1039\u1006' )
output_text = output_text.gsub('\u1068','\u1039\u1007' )
output_text = output_text.gsub('\u1069','\u1039\u1008' )
output_text = output_text.gsub('\u106C','\u1039\u100B' )
output_text = output_text.gsub('\u1070','\u1039\u100F' )
output_text = output_text.gsub('[\u1071\u1072]','\u1039\u1010' )
output_text = output_text.gsub('[\u1073\u1074]','\u1039\u1011' )
output_text = output_text.gsub('\u1075','\u1039\u1012' )
output_text = output_text.gsub('\u1076','\u1039\u1013' )
output_text = output_text.gsub('\u1077','\u1039\u1014' )
output_text = output_text.gsub('\u1078','\u1039\u1015' )
output_text = output_text.gsub('\u1079','\u1039\u1016' )
output_text = output_text.gsub('\u107A','\u1039\u1017' )
output_text = output_text.gsub('\u107B','\u1039\u1018' )
output_text = output_text.gsub('\u107C','\u1039\u1019' )
output_text = output_text.gsub('\u1085','\u1039\u101C' )
output_text = output_text.gsub('\u106D','\u1039\u100C' )
output_text = output_text.gsub('\u1091','\u100F\u1039\u100D' )
output_text = output_text.gsub('\u1092','\u100B\u1039\u100C' )
output_text = output_text.gsub('\u1097','\u100B\u1039\u100B' )
output_text = output_text.gsub('\u106F','\u100E\u1039\u100D' )
output_text = output_text.gsub('\u106E','\u100D\u1039\u100D' )
output_text = output_text.gsub('(\u103C)([\u1000-\u1021])((?:\u1039[\u1000-\u1021])?)','$2$3$1' )
output_text = output_text.gsub('(\u103E)(\u103D)([\u103B\u103C])','$3$2$1' )
output_text = output_text.gsub('(\u103E)([\u103B\u103C])','$2$1' )
output_text = output_text.gsub('(\u103D)([\u103B\u103C])','$2$1' )
output_text = output_text.gsub('(?<=([\u1000-\u101C\u101E-\u102A\u102C\u102E-\u103F\u104C-\u109F]))(\u1040)(?=\u0020)?','\u101D' )
output_text = output_text.gsub('(?<=(\u101D))(\u1040)(?=\u0020)?','\u101D' )
output_text = output_text.gsub('(?<=([\u1000-\u101C\u101E-\u102A\u102C\u102E-\u103F\u104C-\u109F\u0020]))(\u1047)','\u101B' )
output_text = output_text.gsub('(\u1047)(?=[\u1000-\u101C\u101E-\u102A\u102C\u102E-\u103F\u104C-\u109F\u0020])','\u101B' )
output_text = output_text.gsub('((?:\u1031)?)([\u1000-\u1021])((?:\u1039[\u1000-\u1021])?)((?:[\u102D\u102E\u1032])?)([\u1036\u1037\u1038]{0,2})([\u103B-\u103E]{0,3})((?:[\u102F\u1030])?)([\u1036\u1037\u1038]{0,2})((?:[\u102D\u102E\u1032])?)','$2$3$6$1$4$9$7$5$8' )
output_text = output_text.gsub('\u1036u102F','\u102F\u1036' )
output_text = output_text.gsub('(\u103A)(\u1037)','$2$1' )
return output_text
end%
def uni512zg1(input_text)
output_text = input_text
{% for rule in uni512zg1_rules -%}
output_text = output_text.gsub('{{rule.0}}','{{rule.1}}' )
{% endfor -%}
return output_text
end
def zg12uni51(input_text)
output_text = input_text
{% for rule in zg12uni51_rules -%}
output_text = output_text.gsub('{{rule.0}}','{{rule.1}}' )
{% endfor -%}
return output_text
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment