interscript 0.1.5 → 2.1.0a8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +29 -0
  5. data/LICENSE.adoc +31 -0
  6. data/README.md +3 -0
  7. data/Rakefile +53 -0
  8. data/bin/console +14 -0
  9. data/bin/interscript +3 -39
  10. data/bin/maps_analyze_staging +168 -0
  11. data/bin/maps_debug_compilers +58 -0
  12. data/bin/maps_debug_ordering +88 -0
  13. data/bin/maps_debug_ruby_compile +24 -0
  14. data/bin/maps_debug_step_by_step +44 -0
  15. data/bin/maps_optimize_order +112 -0
  16. data/bin/maps_v1_analyze_regexps +45 -0
  17. data/bin/maps_v1_to_v2 +426 -0
  18. data/exe/interscript +6 -0
  19. data/interscript.gemspec +31 -0
  20. data/lib/interscript.rb +81 -123
  21. data/lib/interscript/command.rb +5 -5
  22. data/lib/interscript/compiler.rb +22 -0
  23. data/lib/interscript/compiler/javascript.rb +292 -0
  24. data/lib/interscript/compiler/ruby.rb +262 -0
  25. data/lib/interscript/dsl.rb +67 -0
  26. data/lib/interscript/dsl/aliases.rb +23 -0
  27. data/lib/interscript/dsl/document.rb +46 -0
  28. data/lib/interscript/dsl/group.rb +45 -0
  29. data/lib/interscript/dsl/group/parallel.rb +6 -0
  30. data/lib/interscript/dsl/items.rb +89 -0
  31. data/lib/interscript/dsl/metadata.rb +26 -0
  32. data/lib/interscript/dsl/stage.rb +6 -0
  33. data/lib/interscript/dsl/symbol_mm.rb +11 -0
  34. data/lib/interscript/dsl/tests.rb +12 -0
  35. data/lib/interscript/interpreter.rb +251 -0
  36. data/lib/interscript/node.rb +25 -0
  37. data/lib/interscript/node/alias_def.rb +15 -0
  38. data/lib/interscript/node/dependency.rb +13 -0
  39. data/lib/interscript/node/document.rb +45 -0
  40. data/lib/interscript/node/group.rb +34 -0
  41. data/lib/interscript/node/group/parallel.rb +9 -0
  42. data/lib/interscript/node/group/sequential.rb +2 -0
  43. data/lib/interscript/node/item.rb +52 -0
  44. data/lib/interscript/node/item/alias.rb +42 -0
  45. data/lib/interscript/node/item/any.rb +61 -0
  46. data/lib/interscript/node/item/capture.rb +50 -0
  47. data/lib/interscript/node/item/group.rb +51 -0
  48. data/lib/interscript/node/item/repeat.rb +40 -0
  49. data/lib/interscript/node/item/stage.rb +23 -0
  50. data/lib/interscript/node/item/string.rb +51 -0
  51. data/lib/interscript/node/metadata.rb +18 -0
  52. data/lib/interscript/node/rule.rb +6 -0
  53. data/lib/interscript/node/rule/funcall.rb +18 -0
  54. data/lib/interscript/node/rule/run.rb +15 -0
  55. data/lib/interscript/node/rule/sub.rb +65 -0
  56. data/lib/interscript/node/stage.rb +19 -0
  57. data/lib/interscript/node/tests.rb +15 -0
  58. data/lib/interscript/stdlib.rb +211 -0
  59. data/lib/interscript/utils/regexp_converter.rb +283 -0
  60. data/lib/interscript/version.rb +1 -1
  61. data/requirements.txt +1 -0
  62. metadata +73 -311
  63. data/README.adoc +0 -298
  64. data/bin/rspec +0 -29
  65. data/lib/__pycache__/g2pwrapper.cpython-38.pyc +0 -0
  66. data/lib/g2pwrapper.py +0 -34
  67. data/lib/interscript-opal.rb +0 -2
  68. data/lib/interscript/fs.rb +0 -69
  69. data/lib/interscript/mapping.rb +0 -142
  70. data/lib/interscript/opal.rb +0 -23
  71. data/lib/interscript/opal/maps.js.erb +0 -7
  72. data/lib/interscript/opal_map_translate.rb +0 -12
  73. data/lib/model-7 +0 -0
  74. data/lib/tha-pt-b-7 +0 -0
  75. data/maps/acadsin-zho-Hani-Latn-2002.yaml +0 -38912
  76. data/maps/alalc-aze-Cyrl-Latn-1997.yaml +0 -141
  77. data/maps/alalc-bel-cyrl-latn-1997.yaml +0 -125
  78. data/maps/alalc-ben-Beng-Latn-2017.yaml +0 -130
  79. data/maps/alalc-bul-Cyrl-Latn-1997.yaml +0 -94
  80. data/maps/alalc-ell-Grek-Latn-1997.yaml +0 -625
  81. data/maps/alalc-ell-Grek-Latn-2010.yaml +0 -628
  82. data/maps/alalc-kat-Geok-Latn-1997.yaml +0 -112
  83. data/maps/alalc-kat-Geor-Latn-1997.yaml +0 -146
  84. data/maps/alalc-kor-Hang-Latn-1997.yaml +0 -94
  85. data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +0 -103
  86. data/maps/alalc-mkd-cyrl-latn-1997.yaml +0 -114
  87. data/maps/alalc-rus-Cyrl-Latn-1997.yaml +0 -222
  88. data/maps/alalc-rus-Cyrl-Latn-2012.yaml +0 -162
  89. data/maps/alalc-srp-Cyrl-Latn-1997.yaml +0 -114
  90. data/maps/alalc-srp-cyrl-latn-2013.yaml +0 -135
  91. data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +0 -141
  92. data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +0 -16
  93. data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +0 -283
  94. data/maps/bas-rus-Cyrl-Latn-2017-bss.yaml +0 -175
  95. data/maps/bas-rus-Cyrl-Latn-2017-oss.yaml +0 -169
  96. data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +0 -294
  97. data/maps/bgn-kor-Hang-Latn-1943.yaml +0 -31
  98. data/maps/bgn-kor-Kore-Latn-1943.yaml +0 -31
  99. data/maps/bgna-bul-Cyrl-Latn-2006.yaml +0 -208
  100. data/maps/bgna-bul-Cyrl-Latn-2009.yaml +0 -208
  101. data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +0 -108
  102. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +0 -104
  103. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +0 -184
  104. data/maps/bgnpcgn-bel-cyrl-latn-1979.yaml +0 -285
  105. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +0 -115
  106. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +0 -38
  107. data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +0 -702
  108. data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +0 -20
  109. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +0 -257
  110. data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +0 -127
  111. data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +0 -43
  112. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +0 -253
  113. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +0 -48
  114. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +0 -48
  115. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +0 -159
  116. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +0 -190
  117. data/maps/bgnpcgn-per-Arab-Latn-1956.yaml +0 -93
  118. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +0 -314
  119. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +0 -166
  120. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +0 -163
  121. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +0 -208
  122. data/maps/bgnpcgn-zho-Hans-Latn-1979.yaml +0 -7456
  123. data/maps/by-bel-Cyrl-Latn-1998.yaml +0 -168
  124. data/maps/by-bel-Cyrl-Latn-2007.yaml +0 -115
  125. data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +0 -685
  126. data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +0 -681
  127. data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +0 -20
  128. data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +0 -32
  129. data/maps/ggg-kat-Geor-Latn-2002.yaml +0 -89
  130. data/maps/gki-bel-cyrl-latn-1992.yaml +0 -33
  131. data/maps/gki-bel-cyrl-latn-2000.yaml +0 -201
  132. data/maps/gost-rus-cyrl-latn-16876-71-1983.yaml +0 -186
  133. data/maps/hk-yue-Hani-Latn-1888.yaml +0 -38497
  134. data/maps/icao-bel-Cyrl-Latn-9303.yaml +0 -141
  135. data/maps/icao-bul-Cyrl-Latn-9303.yaml +0 -122
  136. data/maps/icao-heb-Hebr-Latn-9303.yaml +0 -151
  137. data/maps/icao-mkd-Cyrl-Latn-9303.yaml +0 -117
  138. data/maps/icao-per-Arab-Latn-9303.yaml +0 -104
  139. data/maps/icao-rus-Cyrl-Latn-9303.yaml +0 -118
  140. data/maps/icao-srp-Cyrl-Latn-9303.yaml +0 -117
  141. data/maps/icao-ukr-Cyrl-Latn-9303.yaml +0 -120
  142. data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +0 -610
  143. data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +0 -41
  144. data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +0 -62
  145. data/maps/iso-rus-Cyrl-Latn-9-1995.yaml +0 -272
  146. data/maps/iso-tha-Thai-Latn-11940-1998.yaml +0 -109
  147. data/maps/kp-kor-Hang-Latn-2002.yaml +0 -901
  148. data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +0 -44820
  149. data/maps/mext-jpn-Hrkt-Latn-1954.yaml +0 -411
  150. data/maps/moct-kor-Hang-Latn-2000.yaml +0 -803
  151. data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +0 -541
  152. data/maps/mvd-bel-Cyrl-Latn-2008.yaml +0 -225
  153. data/maps/mvd-bel-Cyrl-Latn-2010.yaml +0 -63
  154. data/maps/mvd-rus-Cyrl-Latn-2008.yaml +0 -110
  155. data/maps/mvd-rus-Cyrl-Latn-2010.yaml +0 -37
  156. data/maps/nil-kor-Hang-Hang-jamo.yaml +0 -11193
  157. data/maps/odni-aze-Cyrl-Latn-2015.yaml +0 -144
  158. data/maps/odni-bel-Cyrl-Latn-2015.yaml +0 -148
  159. data/maps/odni-bul-Cyrl-Latn-2015.yaml +0 -96
  160. data/maps/odni-kat-Geor-Latn-2015.yaml +0 -88
  161. data/maps/odni-kaz-Cyrl-Latn-2015.yaml +0 -148
  162. data/maps/odni-kir-Cyrl-Latn-2015.yaml +0 -136
  163. data/maps/odni-mkd-cyrl-latn-2015.yaml +0 -122
  164. data/maps/odni-rus-Cyrl-Latn-2015.yaml +0 -77
  165. data/maps/odni-srp-Cyrl-Latn-2015.yaml +0 -129
  166. data/maps/odni-tat-Cyrl-Latn-2015.yaml +0 -142
  167. data/maps/odni-tgk-Cyrl-Latn-2015.yaml +0 -148
  168. data/maps/odni-uig-Cyrl-Latn-2015.yaml +0 -138
  169. data/maps/odni-ukr-Cyrl-Latn-2015.yaml +0 -157
  170. data/maps/odni-uzb-Cyrl-Latn-2015.yaml +0 -167
  171. data/maps/royin-tha-Thai-Latn-1939-generic.yaml +0 -90
  172. data/maps/royin-tha-Thai-Latn-1968.yaml +0 -179
  173. data/maps/royin-tha-Thai-Latn-1999-chained.yaml +0 -180
  174. data/maps/royin-tha-Thai-Latn-1999.yaml +0 -76
  175. data/maps/sac-zho-Hans-Latn-1979.yaml +0 -24759
  176. data/maps/ses-ara-arab-latn-1930.yaml +0 -275
  177. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +0 -222
  178. data/maps/ua-ukr-Cyrl-Latn-1996.yaml +0 -193
  179. data/maps/un-ara-Arab-Latn-1971.yaml +0 -127
  180. data/maps/un-ara-Arab-Latn-1972.yaml +0 -152
  181. data/maps/un-ara-Arab-Latn-2017.yaml +0 -383
  182. data/maps/un-bel-Cyrl-Latn-2007.yaml +0 -114
  183. data/maps/un-ben-Beng-Latn-2016.yaml +0 -534
  184. data/maps/un-ell-Grek-Latn-1987-tl.yaml +0 -32
  185. data/maps/un-ell-Grek-Latn-1987-ts.yaml +0 -20
  186. data/maps/un-ell-Grek-Latn-phonetic-1987.yaml +0 -780
  187. data/maps/un-mon-Mong-Latn-2013.yaml +0 -93
  188. data/maps/un-rus-Cyrl-Latn-1987.yaml +0 -166
  189. data/maps/un-ukr-cyrl-latn-1998.yaml +0 -30
  190. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +0 -406
  191. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +0 -386
  192. data/maps/var-kor-Hang-Latn-mr-1939.yaml +0 -1054
  193. data/maps/var-kor-Kore-Hang-2013.yaml +0 -59754
  194. data/maps/var-kor-Kore-Latn-mr-1939.yaml +0 -37
  195. data/maps/var-tha-Thai-Thai-phonemic.yaml +0 -59
  196. data/maps/var-tha-Thai-Zsym-ipa.yaml +0 -301
  197. data/maps/var-zho-Hani-Latn-1979.yaml +0 -38908
  198. data/spec/interscript/mapping_spec.rb +0 -42
  199. data/spec/interscript_spec.rb +0 -26
  200. data/spec/spec_helper.rb +0 -3
@@ -1,115 +0,0 @@
1
- ---
2
- authority_id: bgnpcgn
3
- id: 1952
4
- language: bul
5
- source_script: Cyrl
6
- destination_script: Latn
7
- name: ROMANIZATION SYSTEM FOR BULGARIAN BGN/PCGN of 1952
8
- url: https://libraries.ucsd.edu/bib/fed/USBGN_romanization.pdf
9
- creation_date: 1945
10
- confirmation_date: 1952
11
- description: |
12
- This system was adopted by the BGN in 1949 and by the PCGN in 1952. It
13
- reflects the much simplified Bulgarian orthography as officially revised in
14
- February 1945. The Bulgarian alphabet contains all of the characters present
15
- in the Russian alphabet with the exception of ё, ы, and э. Notes 1, 2, and 3
16
- are applicable to sources predating the orthographic reform of 1945.
17
-
18
- notes:
19
- - In modern Bulgarian orthography, the character ъ, does not occcur in word-final position. It should be omitted in romanization when found in word-final position on older sources
20
- - The obsolete character ѫ, which was replaced by ъ in 1945, should be romanized ŭ
21
- - The obsolete character ѣ, replaced in 1945 by е or я according to local pronunciation, should be romanized as e or ya, accordingly, if the pronunciation is known; otherwise, as ye
22
- - The character sequence тс may be romanized t·s in order to differentiate that romanization from the regularly occurring digraph ts, which represents the character ц
23
-
24
- tests:
25
- - source: София
26
- expected: Sofiya
27
- - source: София-Град
28
- expected: Sofiya-Grad
29
- - source: България
30
- expected: "Bu\u0306lgariya"
31
-
32
- map:
33
- rules:
34
- # note[1]
35
- - pattern: (?<=)\u042a(?=\b)
36
- result: ""
37
- - pattern: (?<=)\u044a(?=\b)
38
- result: ""
39
- # note[4]
40
- - pattern: "\u0422\u0421"
41
- result: T·S
42
- - pattern: "\u0422\u0441"
43
- result: T·s
44
- - pattern: "\u0442\u0441"
45
- result: t·s
46
-
47
- characters:
48
- '\u0410': 'A'
49
- '\u0411': 'B'
50
- '\u0412': 'V'
51
- '\u0413': 'G'
52
- '\u0414': 'D'
53
- '\u0415': 'E'
54
- '\u0416': 'Zh'
55
- '\u0417': 'Z'
56
- '\u0418': 'I'
57
- '\u0419': 'Y'
58
- '\u041a': 'K'
59
- '\u041b': 'L'
60
- '\u041c': 'M'
61
- '\u041d': 'N'
62
- '\u041e': 'O'
63
- '\u041f': 'P'
64
- '\u0420': 'R'
65
- '\u0421': 'S'
66
- '\u0422': 'T'
67
- '\u0423': 'U'
68
- '\u0424': 'F'
69
- '\u0425': 'Kh'
70
- '\u0426': 'Ts'
71
- '\u0427': 'Ch'
72
- '\u0428': 'Sh'
73
- '\u0429': 'St'
74
- '\u042a': "U\u0306"
75
- '\u042c': "\\'"
76
- '\u042e': 'Yu'
77
- '\u042f': 'Ya'
78
- '\u0430': 'a'
79
- '\u0431': 'b'
80
- '\u0432': 'v'
81
- '\u0433': 'g'
82
- '\u0434': 'd'
83
- '\u0435': 'e'
84
- '\u0436': 'zh'
85
- '\u0437': 'z'
86
- '\u0438': 'i'
87
- '\u0439': 'y'
88
- '\u043a': 'k'
89
- '\u043b': 'l'
90
- '\u043c': 'm'
91
- '\u043d': 'n'
92
- '\u043e': 'o'
93
- '\u043f': 'p'
94
- '\u0440': 'r'
95
- '\u0441': 's'
96
- '\u0442': 't'
97
- '\u0443': 'u'
98
- '\u0444': 'f'
99
- '\u0445': 'kh'
100
- '\u0446': 'ts'
101
- '\u0447': 'ch'
102
- '\u0448': 'sh'
103
- '\u0449': 'sht'
104
- '\u044a': "u\u0306"
105
- '\u044c': "\\'"
106
- '\u044e': 'yu'
107
- '\u044f': 'ya'
108
-
109
- # note 2
110
- '\u046A': "U\u0306" # Ѫ
111
- '\u046B': "u\u0306" # ѫ
112
-
113
- # note[3]
114
- '\u0462': "Ye" # Ѣ
115
- '\u0463': "ye" # ѣ
@@ -1,38 +0,0 @@
1
- ---
2
- authority_id: bgnpcgn
3
- id: 2013
4
- language: bul
5
- source_script: Cyrl
6
- destination_script: Latn
7
- name: BGN/PCGN 2013 Agreement
8
- url: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/811509/ROMANIZATION_OF_BULGARIAN.pdf
9
- creation_date: 2013
10
- confirmation date: 2019-06
11
- description: |
12
- This system reflects the Bulgarian national system officially adopted
13
- by state decree in March 2009. It was adopted by BGN and PCGN in 2013,
14
- replacing the BGN/PCGN system of 1952.
15
-
16
- notes:
17
- - When in final position, “ия” is romanized as “ia” (e.g., София = Sofia; София-Град= Sofia-Grad).
18
- - An exception to the romanization system is allowed for the name of the state. Thus, България is romanized as Bulgaria.
19
- - The Romanization column shows only lowercase forms but, when romanizing, uppercase and lowercase Roman letters as appropriate should be used.
20
-
21
- tests:
22
- - source: София
23
- expected: Sofia
24
- - source: София-Град
25
- expected: Sofia-Grad
26
- - source: България
27
- expected: Bulgaria
28
-
29
- map:
30
- inherit: bgnpcgn-bul-Cyrl-Latn-1952
31
-
32
- rules:
33
- - pattern: България
34
- result: Bulgaria
35
- - pattern: (?<=\u0418)\u042f(?=\b) # final position, “ИЯ” is romanized as “IA”
36
- result: A
37
- - pattern: (?<=\u0438)\u044f(?=\b) # final position, “ия” is romanized as “ia”
38
- result: a
@@ -1,702 +0,0 @@
1
- ---
2
- authority_id: bgnpcgn
3
- id: 1962
4
- language: ell
5
- source_script: Grek
6
- destination_script: Latn
7
- name: BGN/PCGN 1962 System
8
- url: https://github.com/riboseinc/interscript/files/4225556/BGN_Romanization_Guide_1962_greek.pdf
9
- creation_date: 1962
10
- description: |
11
- BGN/PCGN Romanization table for Greek
12
-
13
- note:
14
- - Original specification is for polytonic Greek; this has been adapted for monotonic Greek
15
- - The treatment of έι in https://transliteration.eki.ee/pdf/Greek.pdf is incorrect; although
16
- not explicitly discussed in the original specification, έι is phonetically equivalent to
17
- έϊ, and is to be transliterated as eï, not í (like εί). The same applies to other diphthongs
18
- accented on the first syllable.
19
-
20
- tests:
21
-
22
- - source: |
23
- Ένα πράμα μόνον με παρακίνησε κι εμένα να γράψω ότι τούτην την πατρίδα την έχομεν όλοι μαζί, και σοφοί κι αμαθείς και πλούσιοι και φτωχοί και πολιτικοί και στρατιωτικοί και οι πλέον μικρότεροι άνθρωποι· όσοι αγωνιστήκαμεν, αναλόγως ο καθείς, έχομεν να ζήσομεν εδώ. Το λοιπόν δουλέψαμεν όλοι μαζί, να την φυλάμεν κι όλοι μαζί και να μην λέγει ούτε ο δυνατός «εγώ» ούτε ο αδύνατος. Ξέρετε πότε να λέγει ο καθείς «εγώ»; Όταν αγωνιστεί μόνος του και φκιάσει ή χαλάσει, να λέγει «εγώ»· όταν όμως αγωνίζονται πολλοί και φκιάνουν, τότε να λένε «εμείς». Είμαστε εις το «εμείς» κι όχι εις το «εγώ». Και εις το εξής να μάθομεν γνώση, αν θέλομεν να φκιάσομεν χωριόν, να ζήσομεν όλοι μαζί.
24
-
25
- Γιάννης Μακρυγιάννης.
26
-
27
- expected: |
28
- Éna práma mónon me parakínise ki eména na grápso óti toútin tin patrídha tin ékhomen óloi mazí, kai sofoí ki amathís kai ploúsioi kai ftokhoí kai politikoí kai stratiotikoí kai oi pléon mikróteroi ánthropoi; ósoi agonistíkamen, analógos o kathís, ékhomen na zísomen edhó. To loipón dhoulépsamen óloi mazí, na tin filámen ki óloi mazí kai na min léyi oúte o dhinatós «egó» oúte o adhínatos. Xérete póte na léyi o kathís «egó»? Ótan agonistí mónos tou kai fkiási í khalási, na léyi «egó»; ótan ómos agonízondai polloí kai fkiánoun, tóte na léne «emís». Ímaste is to «emís» ki ókhi is to «egó». Kai is to exís na máthomen gnósi, an thélomen na fkiásomen khorión, na zísomen óloi mazí.
29
-
30
- Yiánnis Makriyiánnis.
31
-
32
-
33
- - source: ΑΘΗΝΑ
34
- expected: ATHINA
35
- - source: μπαμπάκι
36
- expected: bambáki
37
- - source: νταντά
38
- expected: dandá
39
- - source: γκέγκε
40
- expected: génge
41
- - source: Γκαμπόν
42
- expected: Gambón
43
- - source: Μάγχη
44
- expected: Mánkhi
45
- - source: κογξ
46
- expected: konx
47
- - source: υιός
48
- expected: iós
49
- - source: Υιός
50
- expected: Iós
51
- - source: νεράντζι
52
- expected: nerántzi
53
- - source: Γοίθιος
54
- expected: Goíthios
55
- - source: μπέικον
56
- expected: béïkon
57
- - source: μπέϊκον
58
- expected: béïkon
59
- - source: βόλεϊ
60
- expected: vóleï
61
- - source: αθεΐα
62
- expected: atheḯa
63
- - source: Εϊγιαφιάτλαγιοκουτλ
64
- expected: Eïyiafiátlayiokoutl
65
- - source: Εΐτζι
66
- expected: Eḯtzi
67
- - source: Μυρτώο
68
- expected: Mirtóö
69
- - source: αέρας
70
- expected: aë́ras
71
- - source: γαυ γαυ
72
- expected: gav gav
73
- - source: Ταΰγετος
74
- expected: Taḯyetos
75
- - source: σπρέυ
76
- expected: spréi
77
-
78
- - source: Αθήνα
79
- expected: Athína
80
- - source: Άγιον Όρος
81
- expected: Áyion Óros
82
- - source: Άγραφα
83
- expected: Ágrafa
84
- - source: Αγρίνιο
85
- expected: Agrínio
86
- - source: Αίγινα
87
- expected: Aíyina
88
- - source: Αίγιο
89
- expected: Aíyio
90
- - source: Αλεξανδρούπολη
91
- expected: Alexandroúpoli
92
- - source: Αλεποχώρι
93
- expected: Alepokhóri
94
- - source: Αμοργός
95
- expected: Amorgós
96
- - source: Άμφισσα
97
- expected: Ámfissa
98
- - source: Αράχωβα
99
- expected: Arákhova
100
- - source: Άργος
101
- expected: Árgos
102
- - source: Αρκαδία
103
- expected: Arkadhía
104
- - source: Άρτα
105
- expected: Árta
106
- - source: Βελούχι
107
- expected: Veloúkhi
108
- - source: Βέροια
109
- expected: Véroia
110
- - source: Βοιωτία
111
- expected: Voiotía
112
- - source: Βόλος
113
- expected: Vólos
114
- - source: Βόνιτσα
115
- expected: Vónitsa
116
- - source: Γαλαξίδι
117
- expected: Galaxídhi
118
- - source: Γαλάτσι
119
- expected: Galátsi
120
- - source: Γιαννιτσά
121
- expected: Yiannitsá
122
- - source: Γλυφάδα
123
- expected: Glifádha
124
- - source: Γρανίτσα
125
- expected: Granítsa
126
- - source: Γρεβενά
127
- expected: Grevená
128
- - source: Γύθειο
129
- expected: Yíthio
130
- - source: Διόνυσος
131
- expected: Dhiónisos
132
- - source: Δίστομο
133
- expected: Dhístomo
134
- - source: Δολιανά
135
- expected: Dholianá
136
- - source: Δράμα
137
- expected: Dhráma
138
- - source: Δωδεκάνησα
139
- expected: Dhodhekánisa
140
- - source: Έδεσσα
141
- expected: Édhessa
142
- - source: Ελευσίνα
143
- expected: Elevsína
144
- - source: Επίδαυρος
145
- expected: Epídhavros
146
- - source: Επτάνησα
147
- expected: Eptánisa
148
- - source: Ερμούπολη
149
- expected: Ermoúpoli
150
- - source: Εύβοια
151
- expected: Évvoia
152
- - source: Ζάκυνθος
153
- expected: Zákinthos
154
- - source: Ήπειρος
155
- expected: Ípiros
156
- - source: Ηράκλειο
157
- expected: Iráklio
158
- - source: Θάσος
159
- expected: Thásos
160
- - source: Θεσσαλονίκη
161
- expected: Thessaloníki
162
- - source: Θεσσαλία
163
- expected: Thessalía
164
- - source: Θεσπρωτία
165
- expected: Thesprotía
166
- - source: Θήβα
167
- expected: Thíva
168
- - source: Θράκη
169
- expected: Thráki
170
- - source: Ιθάκη
171
- expected: Itháki
172
- - source: Ίος
173
- expected: Íos
174
- - source: Ιωάννινα
175
- expected: Ioánnina
176
- - source: Καβάλα
177
- expected: Kavála
178
- - source: Καλάβρυτα
179
- expected: Kalávrita
180
- - source: Καλαμάτα
181
- expected: Kalamáta
182
- - source: Καλαμπάκα
183
- expected: Kalambáka
184
- - source: Καλύβια
185
- expected: Kalívia
186
- - source: Κάλυμνος
187
- expected: Kálimnos
188
- - source: Καρδίτσα
189
- expected: Kardhítsa
190
- - source: Καρπενήσι
191
- expected: Karpenísi
192
- - source: Κάρυστος
193
- expected: Káristos
194
- - source: Καστελλόριζο
195
- expected: Kastellórizo
196
- - source: Καστοριά
197
- expected: Kastoriá
198
- - source: Κατερίνη
199
- expected: Kateríni
200
- - source: Κάτω Αχαΐα
201
- expected: Káto Akhaḯa
202
- - source: Κερατέα
203
- expected: Keratéa
204
- - source: Κέρκυρα
205
- expected: Kérkira
206
- - source: Κεφαλλονιά
207
- expected: Kefalloniá
208
- - source: Κηφισιά
209
- expected: Kifisiá
210
- - source: Κιλκίς
211
- expected: Kilkís
212
- - source: Κοζάνη
213
- expected: Kozáni
214
- - source: Κολωνός
215
- expected: Kolonós
216
- - source: Κομοτηνή
217
- expected: Komotiní
218
- - source: Κόρινθος
219
- expected: Kórinthos
220
- - source: Κορώνη
221
- expected: Koróni
222
- - source: Κρανίδι
223
- expected: Kranídhi
224
- - source: Κρέστενα
225
- expected: Kréstena
226
- - source: Κρήτη
227
- expected: Kríti
228
- - source: Κύθηρα
229
- expected: Kíthira
230
- - source: Κυκλάδες
231
- expected: Kikládhes
232
- - source: Κύμη
233
- expected: Kími
234
- - source: Κυψέλη
235
- expected: Kipséli
236
- - source: Κως
237
- expected: Kos
238
- - source: Λαγκαδάς
239
- expected: Langadhás
240
- - source: Λαμία
241
- expected: Lamía
242
- - source: Λάρισα
243
- expected: Lárisa
244
- - source: Λαύριο
245
- expected: Lávrio
246
- - source: Λέρος
247
- expected: Léros
248
- - source: Λέσβος
249
- expected: Lésvos
250
- - source: Λευκάδα
251
- expected: Levkádha
252
- - source: Λήμνος
253
- expected: Límnos
254
- - source: Λιβαδειά
255
- expected: Livadhiá
256
- - source: Μακεδονία
257
- expected: Makedhonía
258
- - source: Μάνη
259
- expected: Máni
260
- - source: Μαραθώνας
261
- expected: Marathónas
262
- - source: Μαρκόπουλο
263
- expected: Markópoulo
264
- - source: Μαρούσι
265
- expected: Maroúsi
266
- - source: Μέγαρα
267
- expected: Mégara
268
- - source: Μεσολόγγι
269
- expected: Mesolóngi
270
- - source: Μεταξουργείο
271
- expected: Metaxouryío
272
- - source: Μέτσοβο
273
- expected: Métsovo
274
- - source: Μήλος
275
- expected: Mílos
276
- - source: Μύκονος
277
- expected: Míkonos
278
- - source: Μυστράς
279
- expected: Mistrás
280
- - source: Μυτιλήνη
281
- expected: Mitilíni
282
- - source: Νάξος
283
- expected: Náxos
284
- - source: Νάουσα
285
- expected: Náousa
286
- - source: Ναύπακτος
287
- expected: Návpaktos
288
- - source: Ναύπλιο
289
- expected: Návplio
290
- - source: Νέα Σμύρνη
291
- expected: Néa Smírni
292
- - source: Νίσυρος
293
- expected: Nísiros
294
- - source: Ξάνθη
295
- expected: Xánthi
296
- - source: Όλυμπος
297
- expected: Ólimbos
298
- - source: Παγκράτι
299
- expected: Pangráti
300
- - source: Παπάγου
301
- expected: Papágou
302
- - source: Πάρος
303
- expected: Páros
304
- - source: Πασαλιμάνι
305
- expected: Pasalimáni
306
- - source: Πατήσια
307
- expected: Patísia
308
- - source: Πάτμος
309
- expected: Pátmos
310
- - source: Πάτρα
311
- expected: Pátra
312
- - source: Πειραιάς
313
- expected: Piraiás
314
- - source: Πελοπόννησος
315
- expected: Pelopónnisos
316
- - source: Περιστέρι
317
- expected: Peristéri
318
- - source: Πεύκη
319
- expected: Pévki
320
- - source: Πήλιο
321
- expected: Pílio
322
- - source: Πολύγυρος
323
- expected: Políyiros
324
- - source: Πόρος
325
- expected: Póros
326
- - source: Πρέβεζα
327
- expected: Préveza
328
- - source: Πτολεμαΐδα
329
- expected: Ptolemaḯdha
330
- - source: Πύλος
331
- expected: Pílos
332
- - source: Πύργος
333
- expected: Pírgos
334
- - source: Ρέθυμνο
335
- expected: Réthimno
336
- - source: Ρόδος
337
- expected: Ródhos
338
- - source: Ρούμελη
339
- expected: Roúmeli
340
- - source: Σαλαμίνα
341
- expected: Salamína
342
- - source: Σαμοθράκη
343
- expected: Samothráki
344
- - source: Σάμος
345
- expected: Sámos
346
- - source: Σαντορίνη
347
- expected: Sandoríni
348
- - source: Σέρρες
349
- expected: Sérres
350
- - source: Σίκινος
351
- expected: Síkinos
352
- - source: Σίφνος
353
- expected: Sífnos
354
- - source: Σκιάθος
355
- expected: Skiáthos
356
- - source: Σκόπελος
357
- expected: Skópelos
358
- - source: Σούλι
359
- expected: Soúli
360
- - source: Σπάρτη
361
- expected: Spárti
362
- - source: Στερεά Ελλάδα
363
- expected: Stereá Elládha
364
- - source: Στύρα
365
- expected: Stíra
366
- - source: Σύμη
367
- expected: Sími
368
- - source: Σύρος
369
- expected: Síros
370
- - source: Σφακιά
371
- expected: Sfakiá
372
- - source: Τήλος
373
- expected: Tílos
374
- - source: Τήνος
375
- expected: Tínos
376
- - source: Τρίκαλα
377
- expected: Tríkala
378
- - source: Τρίπολη
379
- expected: Trípoli
380
- - source: Τσακωνιά
381
- expected: Tsakoniá
382
- - source: Ύδρα
383
- expected: Ídhra
384
- - source: Φάληρο
385
- expected: Fáliro
386
- - source: Φλώρινα
387
- expected: Flórina
388
- - source: Φολέγανδρος
389
- expected: Folégandros
390
- - source: Χάλκη
391
- expected: Khálki
392
- - source: Χαλκίδα
393
- expected: Khalkídha
394
- - source: Χαλάνδρι
395
- expected: Khalándri
396
- - source: Χαλκιδική
397
- expected: Khalkidhikí
398
- - source: Χανιά
399
- expected: Khaniá
400
- - source: Χίος
401
- expected: Khíos
402
- - source: Ψαρά
403
- expected: Psará
404
- - source: Αβάνα
405
- expected: Avána
406
- - source: Αγγλία
407
- expected: Anglía
408
- - source: Αϊβαλί
409
- expected: Aïvalí
410
- - source: Αλεξάνδρεια
411
- expected: Alexándria
412
- - source: Άμστερνταμ
413
- expected: Ámsterndam
414
- - source: Βαυαρία
415
- expected: Vavaría
416
- - source: Βενετία
417
- expected: Venetía
418
- - source: Βερολίνο
419
- expected: Verolíno
420
- - source: Βερόνα
421
- expected: Veróna
422
- - source: Βιέννη
423
- expected: Viénni
424
- - source: Γένοβα
425
- expected: Yénova
426
- - source: Δουβλίνο
427
- expected: Dhouvlíno
428
- - source: Καλαβρία
429
- expected: Kalavría
430
- - source: Καλιφόρνια
431
- expected: Kalifórnia
432
- - source: Καύκασος
433
- expected: Kávkasos
434
- - source: Κονγκό
435
- expected: Konngó
436
- - source: Κορσική
437
- expected: Korsikí
438
- - source: Κουρδιστάν
439
- expected: Kourdhistán
440
- - source: Κωνσταντινούπολη
441
- expected: Konstandinoúpoli
442
- - source: Κατεχόμενη Κύπρος
443
- expected: Katekhómeni Kípros
444
- - source: Λαπωνία
445
- expected: Laponía
446
- - source: Λευκωσία
447
- expected: Levkosía
448
- - source: Λιβόρνο
449
- expected: Livórno
450
- - source: Λονδίνο
451
- expected: Londhíno
452
- - source: Λυών
453
- expected: Lión
454
- - source: Μάλαγα
455
- expected: Málaga
456
- - source: Μασσαλία
457
- expected: Massalía
458
- - source: Μικρονησία
459
- expected: Mikronisía
460
- - source: Μιλάνο
461
- expected: Miláno
462
- - source: Μόσχα
463
- expected: Móskha
464
- - source: Μπολόνια
465
- expected: Bolónia
466
- - source: Νάπολη
467
- expected: Nápoli
468
- - source: Νταγκεστάν
469
- expected: Dangestán
470
- - source: Νέα Υόρκη
471
- expected: Néa Iórki
472
- - source: Οξφόρδη
473
- expected: Oxfórdhi
474
- - source: Ουαλία
475
- expected: Oualía
476
- - source: Παρίσι
477
- expected: Parísi
478
- - source: Πάφος
479
- expected: Páfos
480
- - source: Πολυνησία
481
- expected: Polinisía
482
- - source: Ρώμη
483
- expected: Rómi
484
- - source: Σαμάρεια
485
- expected: Samária
486
- - source: Σικελία
487
- expected: Sikelía
488
- - source: Σκανδιναβία
489
- expected: Skandhinavía
490
- - source: Σκόπια
491
- expected: Skópia
492
- - source: Σκωτία
493
- expected: Skotía
494
- - source: Σμύρνη
495
- expected: Smírni
496
- - source: Ταϊτή
497
- expected: Taïtí
498
- - source: Ταταρστάν
499
- expected: Tatarstán
500
- - source: Τζαμάικα
501
- expected: Tzamáika
502
- - source: Τηλλυρία
503
- expected: Tilliría
504
- - source: Τιρόλο
505
- expected: Tirólo
506
- - source: Τορίνο
507
- expected: Toríno
508
- - source: Φανάρι
509
- expected: Fanári
510
- - source: Φλωρεντία
511
- expected: Florendía
512
- - source: Χαβάη
513
- expected: Khaváï
514
- - source: Χονγκ Κονγκ
515
- expected: Khonng Konng
516
-
517
- map:
518
- # https://en.wikipedia.org/wiki/Romanization_of_Greek
519
- rules:
520
- - pattern: (?<=[ΑαΕεΗη])\u03A5 # Υ (after Α, Ε, Η)
521
- result: V
522
- - pattern: (?<=[ΑαΕεΗη])\u03C5 # υ (after Α, Ε, Η)
523
- result: v
524
- - pattern: (?<=[Οο])\u03A5 # Υ (after Ο)
525
- result: U
526
- - pattern: (?<=[Οο])\u03C5 # υ (after Ο)
527
- result: u
528
- - pattern: (?<=[Οο])\u03CD # ύ (after Ο)
529
- result: ú
530
- - pattern: \u03A5[Ιιί] # ΥΙ
531
- result: I
532
- - pattern: \u03C5[Ιιί] # υι
533
- result: i
534
- - pattern: \u03A5[ί] # ΥΙ
535
- result: Í
536
- - pattern: \u03C5[ί] # υι
537
- result: í
538
- - pattern: \u0393(?=[ξΞχΧ]) # Γ (before Γ, Ξ, Χ)
539
- result: N
540
- - pattern: \u03B3(?=[ξΞχΧ]) # γ (before Γ, Ξ, Χ)
541
- result: n
542
- - pattern: \u0393[Γγ] # Γ (before Γ, Ξ, Χ)
543
- result: Ng
544
- - pattern: \u03B3\u03B3 # γ (before Γ, Ξ, Χ)
545
- result: ng
546
- - pattern: (?<=\b)\u0393[Κκ] # Γ (before Κ initially)
547
- result: G
548
- - pattern: (?<=\b)\u03B3[Κκ] # γ (before Κ initially)
549
- result: g
550
- - pattern: (?<!\b)\u0393[Κκ] # Γ (before Κ medially)
551
- result: Ng
552
- - pattern: (?<!\b)\u03B3[Κκ] # γ (before Κ medially)
553
- result: ng
554
- - pattern: \u0393(?=[ΕεέΗηήΙιίΥυύ]) # Γ (before front vowels)
555
- result: Y
556
- - pattern: \u03B3(?=[ΕεέΗηήΙιίΥυύ]) # γ (before front vowels)
557
- result: y
558
- - pattern: \u0393(?=[Oo][Ιιί]) # Γ (before front vowels)
559
- result: Y
560
- - pattern: \u03B3(?=[Oo][Ιιί]) # γ (before front vowels)
561
- result: y
562
- - pattern: (?<=\b)\u039D[τΤ] # ΝΤ (initially)
563
- result: D
564
- - pattern: (?<=\b)\u03BD[τΤ] # ντ (initially)
565
- result: d
566
- - pattern: \u039D[τΤ][ζΖ] # ΝΤΖ
567
- result: NTZ
568
- - pattern: \u03BD[τΤ][ζΖ] # ντζ
569
- result: ntz
570
- - pattern: (?<!\b)\u039D[τΤ] # ΝΤ (medially)
571
- result: Nd
572
- - pattern: (?<!\b)\u03BD[τΤ] # ντ (medially)
573
- result: nd
574
- - pattern: (?<=\b)\u039C[πΠ] # ΜΠ (initially)
575
- result: B
576
- - pattern: (?<=\b)\u03BC[πΠ] # μπ (initially)
577
- result: b
578
- - pattern: \u039C[πΠ] # ΜΠ (medially)
579
- result: Mb
580
- - pattern: \u03BC[πΠ] # μπ (medially)
581
- result: mb
582
- - pattern: (?<=[νΝ])\u0394(?=[ρΡ]) # νδρ
583
- result: d
584
- - pattern: (?<=[νΝ])\u03B4(?=[ρΡ]) # νδρ
585
- result: d
586
- - pattern: (?<=[ΑΆαά])\u0395 # ΑΕ
587
- result: Ë
588
- - pattern: (?<=[ΑΆαά])\u03B5 # αε
589
- result: ë
590
- - pattern: (?<=[ΑΆαά])\u03AD # αέ
591
- result: ë́
592
- - pattern: (?<=[ΩΏωώ])\u039F # ΩΟ
593
- result: Ö
594
- - pattern: (?<=[ΩΏωώ])\u03BF # ωο
595
- result: ö
596
- - pattern: (?<=[ΩΏωώ])\u03CC # ωό
597
- result: ö́
598
- - pattern: (?<=[ΑΆαάΟΌοό])\u0397 # ΑΗ, ΟΗ
599
- result: Ï
600
- - pattern: (?<=[ΑΆαάΟΌοό])\u03B7 # αη, οη
601
- result: ï
602
- - pattern: (?<=[ΑΆαάΟΌοό])\u03AE # αή, οή
603
- result: ḯ
604
- - pattern: \u037E # ;
605
- result: "?"
606
- - pattern: \u003B # ;
607
- result: "?"
608
-
609
- characters:
610
- "\u0027": ""
611
- "\u0386": "Á" # Ά
612
- "\u0391": "A" # Α
613
- "\u0392": "V" # Β
614
- "\u0393": "G" # Γ
615
- "\u0394": "Dh" # Δ
616
- "\u0395": "E" # Ε
617
- "\u0395\u0399": "I" # ΕΙ
618
- "\u0395\u03B9": "I" # Ει
619
- "\u0395\u03AF": "Í" # Εί
620
- "\u0395\u03AA": "Εï" # ΕΪ
621
- "\u0395\u03CA": "Εï" # Εϊ
622
- "\u0388\u03CA": "Éï" # Έϊ
623
- "\u0388\u03CA": "Éï" # Έι
624
- "\u0391\u03CD": "Áv" # Αύ
625
- "\u0395\u03CD": "Év" # Εύ
626
- "\u0397\u03CD": "Ív" # Ηύ
627
- "\u0396": "Z" # Ζ
628
- "\u0397": "I" # Η
629
- "\u0398": "Th" # Θ
630
- "\u0399": "I" # Ι
631
- "\u039A": "K" # Κ
632
- "\u039B": "L" # Λ
633
- "\u039C": "M" # Μ
634
- "\u039D": "N" # Ν
635
- "\u039E": "X" # Ξ
636
- "\u039F": "O" # Ο
637
- "\u03A0": "P" # Π
638
- "\u03A1": "R" # Ρ
639
- "\u03A3": "S" # Σ
640
- "\u03A4": "T" # Τ
641
- "\u03A5": "I" # Υ
642
- "\u03A6": "F" # Φ
643
- "\u03A7": "Kh" # Χ
644
- "\u03A8": "Ps" # Ψ
645
- "\u03A9": "O" # Ω
646
- "\u0388": "É" # Έ
647
- "\u0389": "Í" # Ή
648
- "\u038A": "Í" # Ί
649
- "\u038C": "Ó" # Ό
650
- "\u038E": "Í" # Ύ
651
- "\u038F": "Ó" # Ώ
652
- "\u03AA": "Ï" # Ϊ
653
- "\u03AB": "Ï" # Ϋ
654
-
655
- "\u03AC": "á" # ά
656
- "\u03B1": "a" # α
657
- "\u03B2": "v" # β
658
- "\u03B3": "g" # γ
659
- "\u03B4": "dh" # δ
660
- "\u03B5": "e" # ε
661
- "\u03B5\u03B9": "i" # ει
662
- "\u03B5\u03AF": "í" # εί
663
- "\u03B5\u03CA": "eï" # εϊ
664
- "\u03AD\u03CA": "éï" # έϊ
665
- "\u03AD\u03B9": "éï" # έι
666
- "\u03B1\u03CD": "áv" # αύ
667
- "\u03B5\u03CD": "év" # εύ
668
- "\u03B7\u03CD": "ív" # ηύ
669
- "\u03B6": "z" # ζ
670
- "\u03B7": "i" # η
671
- "\u03B8": "th" # θ
672
- "\u03B9": "i" # ι
673
- "\u03BA": "k" # κ
674
- "\u03BB": "l" # λ
675
- "\u03BC": "m" # μ
676
- "\u03BD": "n" # ν
677
- "\u03BE": "x" # ξ
678
- "\u03BF": "o" # ο
679
- "\u03C0": "p" # π
680
- "\u03C1": "r" # ρ
681
- "\u03C3": "s" # σ
682
- "\u03C2": "s" # ς
683
- "\u03C4": "t" # τ
684
- "\u03C5": "i" # υ
685
- "\u03C6": "f" # φ
686
- "\u03C7": "kh" # χ
687
- "\u03C8": "ps" # ψ
688
- "\u03C9": "o" # ω
689
- "\u03AD": "é" # έ
690
- "\u03AE": "í" # ή
691
- "\u03AF": "í" # ί
692
- "\u03CC": "ó" # ό
693
- "\u03CD": "í" # ύ
694
- "\u03CE": "ó" # ώ
695
- "\u03CA": "ï" # ϊ
696
- "\u03CB": "ï" # ϋ
697
- "\u0390": "ḯ" # ΐ
698
- "\u03B0": "ḯ" # ΰ
699
-
700
- "\u0387": ";" # ·
701
- "\u00B7": ";" # ·
702
-