interscript 0.1.6 → 2.1.0a9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) 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 -127
  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 +75 -339
  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 -71
  69. data/lib/interscript/mapping.rb +0 -142
  70. data/lib/interscript/opal.rb +0 -27
  71. data/lib/interscript/opal/maps.js.erb +0 -10
  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-amh-Ethi-Latn-1997.yaml +0 -509
  77. data/maps/alalc-amh-Ethi-Latn-2011.yaml +0 -138
  78. data/maps/alalc-ara-Arab-Latn-1997.yaml +0 -1283
  79. data/maps/alalc-asm-Deva-Latn-1997.yaml +0 -159
  80. data/maps/alalc-aze-Cyrl-Latn-1997.yaml +0 -141
  81. data/maps/alalc-bel-Cyrl-Latn-1997.yaml +0 -125
  82. data/maps/alalc-ben-Beng-Latn-2017.yaml +0 -130
  83. data/maps/alalc-bul-Cyrl-Latn-1997.yaml +0 -94
  84. data/maps/alalc-ell-Grek-Latn-1997.yaml +0 -624
  85. data/maps/alalc-ell-Grek-Latn-2010.yaml +0 -627
  86. data/maps/alalc-hin-Deva-Latn-2020.yaml +0 -159
  87. data/maps/alalc-kat-Geok-Latn-1997.yaml +0 -111
  88. data/maps/alalc-kat-Geor-Latn-1997.yaml +0 -146
  89. data/maps/alalc-kor-Hang-Latn-1997.yaml +0 -94
  90. data/maps/alalc-mar-Deva-Latn-1997.yaml +0 -170
  91. data/maps/alalc-mkd-Cyrl-Latn-1997.yaml +0 -114
  92. data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +0 -103
  93. data/maps/alalc-pan-Deva-Latn-1997.yaml +0 -237
  94. data/maps/alalc-rus-Cyrl-Latn-1997.yaml +0 -221
  95. data/maps/alalc-rus-Cyrl-Latn-2012.yaml +0 -162
  96. data/maps/alalc-srp-Cyrl-Latn-1997.yaml +0 -114
  97. data/maps/alalc-srp-Cyrl-Latn-2013.yaml +0 -135
  98. data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +0 -141
  99. data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +0 -16
  100. data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +0 -283
  101. data/maps/bas-rus-Cyrl-Latn-2017-bss.yaml +0 -174
  102. data/maps/bas-rus-Cyrl-Latn-2017-oss.yaml +0 -169
  103. data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +0 -292
  104. data/maps/bgn-kor-Hang-Latn-1943.yaml +0 -31
  105. data/maps/bgn-kor-Kore-Latn-1943.yaml +0 -31
  106. data/maps/bgna-bul-Cyrl-Latn-2006.yaml +0 -208
  107. data/maps/bgna-bul-Cyrl-Latn-2009.yaml +0 -208
  108. data/maps/bgnpcgn-amh-Ethi-Latn-1967.yaml +0 -528
  109. data/maps/bgnpcgn-ara-Arab-Latn-1956.yaml +0 -592
  110. data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +0 -108
  111. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +0 -104
  112. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +0 -184
  113. data/maps/bgnpcgn-bel-Cyrl-Latn-1979.yaml +0 -285
  114. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +0 -115
  115. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +0 -38
  116. data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +0 -701
  117. data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +0 -19
  118. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +0 -257
  119. data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +0 -127
  120. data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +0 -42
  121. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +0 -253
  122. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +0 -48
  123. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +0 -48
  124. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +0 -159
  125. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +0 -190
  126. data/maps/bgnpcgn-nep-Deva-Latn-2011.yaml +0 -200
  127. data/maps/bgnpcgn-per-Arab-Latn-1956.yaml +0 -92
  128. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +0 -314
  129. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +0 -166
  130. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +0 -162
  131. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +0 -208
  132. data/maps/bgnpcgn-zho-Hans-Latn-1979.yaml +0 -7456
  133. data/maps/bis-asm-Beng-Latn-13194-1991.yaml +0 -159
  134. data/maps/bis-ben-Beng-Latn-13194-1991.yaml +0 -156
  135. data/maps/bis-dev-Deva-Latn-13194-1991.yaml +0 -184
  136. data/maps/bis-gjr-Gujr-Latn-13194-1991.yaml +0 -166
  137. data/maps/bis-knd-Knda-Latn-13194-1991.yaml +0 -173
  138. data/maps/bis-mlm-Mlym-Latn-13194-1991.yaml +0 -176
  139. data/maps/bis-ori-Orya-Latn-13194-1991.yaml +0 -160
  140. data/maps/bis-pnj-Guru-Latn-13194-1991.yaml +0 -175
  141. data/maps/bis-tel-Telu-Latn-13194-1991.yaml +0 -170
  142. data/maps/bis-tml-Taml-Latn-13194-1991.yaml +0 -155
  143. data/maps/by-bel-Cyrl-Latn-1998.yaml +0 -168
  144. data/maps/by-bel-Cyrl-Latn-2007.yaml +0 -115
  145. data/maps/dos-nep-Deva-Latn-1997.yaml +0 -33
  146. data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +0 -684
  147. data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +0 -680
  148. data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +0 -19
  149. data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +0 -31
  150. data/maps/ggg-kat-Geor-Latn-2002.yaml +0 -88
  151. data/maps/gki-bel-Cyrl-Latn-1992.yaml +0 -33
  152. data/maps/gki-bel-Cyrl-Latn-2000.yaml +0 -201
  153. data/maps/gost-rus-Cyrl-Latn-16876-71-1983.yaml +0 -186
  154. data/maps/hk-yue-Hani-Latn-1888.yaml +0 -38497
  155. data/maps/icao-bel-Cyrl-Latn-9303.yaml +0 -136
  156. data/maps/icao-bul-Cyrl-Latn-9303.yaml +0 -118
  157. data/maps/icao-heb-Hebr-Latn-9303.yaml +0 -151
  158. data/maps/icao-mkd-Cyrl-Latn-9303.yaml +0 -117
  159. data/maps/icao-per-Arab-Latn-9303.yaml +0 -103
  160. data/maps/icao-rus-Cyrl-Latn-9303.yaml +0 -117
  161. data/maps/icao-srp-Cyrl-Latn-9303.yaml +0 -117
  162. data/maps/icao-ukr-Cyrl-Latn-9303.yaml +0 -119
  163. data/maps/iso-ara-Arab-Latn-233-1984.yaml +0 -323
  164. data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +0 -609
  165. data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +0 -40
  166. data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +0 -62
  167. data/maps/iso-rus-Cyrl-Latn-9-1995.yaml +0 -271
  168. data/maps/iso-tha-Thai-Latn-11940-1998.yaml +0 -109
  169. data/maps/kp-kor-Hang-Latn-2002.yaml +0 -901
  170. data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +0 -44820
  171. data/maps/mext-jpn-Hrkt-Latn-1954.yaml +0 -411
  172. data/maps/moct-kor-Hang-Latn-2000.yaml +0 -803
  173. data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +0 -541
  174. data/maps/mvd-bel-Cyrl-Latn-2008.yaml +0 -225
  175. data/maps/mvd-bel-Cyrl-Latn-2010.yaml +0 -63
  176. data/maps/mvd-rus-Cyrl-Latn-2008.yaml +0 -109
  177. data/maps/mvd-rus-Cyrl-Latn-2010.yaml +0 -37
  178. data/maps/nil-kor-Hang-Hang-jamo.yaml +0 -11193
  179. data/maps/odni-aze-Cyrl-Latn-2015.yaml +0 -144
  180. data/maps/odni-bel-Cyrl-Latn-2015.yaml +0 -148
  181. data/maps/odni-bul-Cyrl-Latn-2015.yaml +0 -96
  182. data/maps/odni-hin-Deva-Latn-2015.yaml +0 -258
  183. data/maps/odni-kat-Geor-Latn-2015.yaml +0 -87
  184. data/maps/odni-kaz-Cyrl-Latn-2015.yaml +0 -148
  185. data/maps/odni-kir-Cyrl-Latn-2015.yaml +0 -136
  186. data/maps/odni-mkd-Cyrl-Latn-2015.yaml +0 -122
  187. data/maps/odni-rus-Cyrl-Latn-2015.yaml +0 -77
  188. data/maps/odni-srp-Cyrl-Latn-2015.yaml +0 -129
  189. data/maps/odni-tat-Cyrl-Latn-2015.yaml +0 -142
  190. data/maps/odni-tgk-Cyrl-Latn-2015.yaml +0 -148
  191. data/maps/odni-uig-Cyrl-Latn-2015.yaml +0 -138
  192. data/maps/odni-ukr-Cyrl-Latn-2015.yaml +0 -157
  193. data/maps/odni-urd-Arab-Latn-2015.yaml +0 -221
  194. data/maps/odni-uzb-Cyrl-Latn-2015.yaml +0 -166
  195. data/maps/royin-tha-Thai-Latn-1939-generic.yaml +0 -90
  196. data/maps/royin-tha-Thai-Latn-1968.yaml +0 -179
  197. data/maps/royin-tha-Thai-Latn-1999-chained.yaml +0 -180
  198. data/maps/royin-tha-Thai-Latn-1999.yaml +0 -76
  199. data/maps/sac-zho-Hans-Latn-1979.yaml +0 -24759
  200. data/maps/ses-ara-Arab-Latn-1930.yaml +0 -279
  201. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +0 -222
  202. data/maps/ua-ukr-Cyrl-Latn-1996.yaml +0 -193
  203. data/maps/un-ara-Arab-Latn-1971.yaml +0 -139
  204. data/maps/un-ara-Arab-Latn-1972.yaml +0 -159
  205. data/maps/un-ara-Arab-Latn-2017.yaml +0 -420
  206. data/maps/un-bel-Cyrl-Latn-2007.yaml +0 -114
  207. data/maps/un-ben-Beng-Latn-2016.yaml +0 -534
  208. data/maps/un-ell-Grek-Latn-1987-tl.yaml +0 -31
  209. data/maps/un-ell-Grek-Latn-1987-ts.yaml +0 -19
  210. data/maps/un-ell-Grek-Latn-phonetic-1987.yaml +0 -780
  211. data/maps/un-mon-Mong-Latn-2013.yaml +0 -99
  212. data/maps/un-nep-Deva-Latn-1972.yaml +0 -163
  213. data/maps/un-rus-Cyrl-Latn-1987.yaml +0 -166
  214. data/maps/un-ukr-Cyrl-Latn-1998.yaml +0 -30
  215. data/maps/ungegn-amh-Ethi-Latn-2016.yaml +0 -575
  216. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +0 -406
  217. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +0 -386
  218. data/maps/var-kor-Hang-Latn-mr-1939.yaml +0 -1054
  219. data/maps/var-kor-Kore-Hang-2013.yaml +0 -59754
  220. data/maps/var-kor-Kore-Latn-mr-1939.yaml +0 -36
  221. data/maps/var-tha-Thai-Thai-phonemic.yaml +0 -59
  222. data/maps/var-tha-Thai-Zsym-ipa.yaml +0 -301
  223. data/maps/var-zho-Hani-Latn-1979.yaml +0 -38908
  224. data/spec/interscript/mapping_spec.rb +0 -42
  225. data/spec/interscript_spec.rb +0 -26
  226. data/spec/spec_helper.rb +0 -3
@@ -1,541 +0,0 @@
1
- ---
2
- authority_id: mofa
3
- id: 1989
4
- language: jpn
5
- source_script: Hrkt
6
- destination_script: Latn
7
- name: Hepburn Romanization, Ministry of Foreign Affairs of Japan
8
- url: https://www.ezairyu.mofa.go.jp/passport/hebon.html
9
- creation_date:
10
- adoption_date:
11
-
12
- description:
13
- The law (旅券法施行規則) requires the use of Hepburn romanization for passports.
14
- https://elaws.e-gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=401M50000020011
15
- 3 前項の氏名はヘボン式ローマ字によって旅券面に表記する。
16
- ただし、申請者がその氏名についてヘボン式によらないローマ字表記を希望し、
17
- 外務大臣又は領事官が、出生証明書等により当該表記が適当であり、かつ、
18
- 渡航の便宜のため特に必要であると認めるときは、この限りではない。
19
-
20
- notes:
21
- Vowel lengthening is not marked in this system.
22
- The use of OH for the long O sound used to be common, but it is
23
- clearly stated that this usage is not part of the Hepburn system.
24
-
25
- OO is simplified to O, except when it comes at the end of a word.
26
- OU and UU are always transliterated without the lengthening U.
27
-
28
- The consonant V is not allowed, and will be transliterated as
29
- BU or B instead.
30
-
31
- tests:
32
-
33
- #【ヘボン式ローマ字表記へ変換する際の注意事項】
34
- # 撥音:B、M、Pの前の「ん」は、NではなくMで表記します。
35
- - source: "ナンバ" # 難波
36
- expected: "NAMBA"
37
- - source: "ホンマ" # 本間
38
- expected: "HOMMA"
39
- - source: "サンペイ" # 三瓶
40
- expected: "SAMPEI"
41
-
42
- # 促音:子音を重ねて表記します。
43
- - source: "ハットリ" # 服部
44
- expected: "HATTORI"
45
- - source: "キッカワ" # 吉川
46
- expected: "KIKKAWA"
47
-
48
- # ただし、チ(CHI)、チャ(CHA)、チュ(CHU)、チョ(CHO)音の前には「T」を表記します。
49
- - source: "ホッチ" # 発地
50
- expected: "HOTCHI"
51
- - source: "ハッチョウ" # 八丁
52
- expected: "HATCHO"
53
-
54
- # 長音:OやUは記入しません。
55
- # ※長音表記を希望する場合には、下記【ヘボン式によらないローマ字氏名表記】を参照してください。
56
- # 「―」を省略する場合
57
- - source: "ニーナ" # ニーナ
58
- expected: "NINA"
59
- - source: "シーナ" # シーナ
60
- expected: "SHINA"
61
- - source: "サリー" # サリー
62
- expected: "SARI"
63
-
64
- # 「イ」を省略しない場合
65
- - source: "ニイナ" # 新菜
66
- expected: "NIINA"
67
- - source: "シイナ" # しいな
68
- expected: "SHIINA"
69
- - source: "サリイ" # さりい
70
- expected: "SARII"
71
-
72
- # 「ウ」を含む長音「ウウ」の場合(「UU」は表記しません。)
73
- - source: "ヒュウガ" # 日向
74
- expected: "HYUGA"
75
- - source: "ユウキ" # 裕貴
76
- expected: "YUKI"
77
- - source: "ユウコ" # 優子
78
- expected: "YUKO"
79
-
80
- # 「オ」を含む長音「オウ」の場合(「OU」は表記しません。)
81
- - source: "コウタ" # 幸太
82
- expected: "KOTA"
83
- - source: "ヨウコ" # 洋子
84
- expected: "YOKO"
85
- - source: "リョウコ" # 亮子
86
- expected: "RYOKO"
87
-
88
- # 「オ」を含む長音「オオ」の場合(「OO」は表記しません。)
89
- - source: "オオノ" # 大野
90
- expected: "ONO"
91
- - source: "オオコウチ" # 大河内
92
- expected: "OKOCHI"
93
- - source: "オオニシ" # 大西
94
- expected: "ONISHI"
95
-
96
- # 末尾が「オオ」音で、ヨミカタが「オ」の場合(「OO」と表記します。)
97
- - source: "セノオ" # 妹尾
98
- expected: "SENOO"
99
- - source: "タカトオ" # 高藤
100
- expected: "TAKATOO"
101
- - source: "ヨコオ" # 横尾
102
- expected: "YOKOO"
103
-
104
- # 末尾が「オウ」音で、ヨミカタが「ウ」の場合(「OU」とは表記しません。)
105
- - source: "イトウ" # 伊藤
106
- expected: "ITO"
107
- - source: "タカトウ" # 高藤
108
- expected: "TAKATO"
109
- - source: "ミソノウ" # 御園生
110
- expected: "MISONO"
111
-
112
- # 「ヴ」のつく氏名例
113
- - source: "ヴィヴィアン" # ヴィヴィアン
114
- #expected: "BUIBUIAN"
115
- expected: "BIBIAN"
116
-
117
- - source: "ヴォードレール" # ヴォードレール
118
- #expected: "BUODORERU"
119
- expected: "BODORERU"
120
-
121
- map:
122
- word_separator: " "
123
-
124
- # Although this system inherits from var-jpn-Hrkt-Latn-hepburn-1886,
125
- # it does not allow the use of macron, and has a list of unique
126
- # transliteration rules.
127
- # It is therefore easier to be implemented as a separate map instead
128
- # of using the inherit flag.
129
-
130
- # inherit: var-jpn-Hrkt-Latn-hepburn-1886
131
-
132
- rules:
133
- # Add a dash (-) between ん and a vowel sound or ya, yu, yo
134
- # - pattern: "([んン])(?=[あいうえおやゆよアイウエオヤユヨ])"
135
- # result: "\\1-"
136
-
137
- # Convert ん into m before b, m, p
138
- # 撥音:B、M、Pの前の「ん」は、NではなくMで表記します。
139
-
140
- - pattern: "[んン](?=[ばびぶべぼまみむめもぱぴぷぺぽバビブベボマミムメモパピプペポ])"
141
- result: "M"
142
-
143
- # Long O and U will not be recorded.
144
- # 長音:OやUは記入しません。
145
- #
146
- # Exception: when OO appears at the end of the word
147
-
148
- - pattern: "([おこそとのほもよろをごぞどぼぽょぉオコソトノホモヨロヲゴゾドボポョォ])[おオ](?=[^\\s])"
149
- result: "\\1"
150
-
151
- - pattern: "([うくすつぬふむゆるぐずづぶぷゅぅウクスツヌフムユルグズヅブプュゥ])[うウ]"
152
- result: "\\1"
153
-
154
- postrules:
155
- # Handling of っ/ッ
156
- # 促音:子音を重ねて表記します。
157
- #
158
- # The kana っ/ッ is a geminate marker.
159
- # When followed by a consonant, repeat the first letter of
160
- # the following syllable. Exception: the combination -cch-
161
- # should be transliterated as -tch-
162
- #
163
- # If っ/ッ is not followed by a consonant, then it is usually
164
- # phonetically realised as an abrupt stop or shorterning of
165
- # the previous syllable. There is no documented or commonly
166
- # accepted way to transliterate this sound.
167
- #
168
-
169
- - pattern: "[っッ]([BbDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvWwXxYyZz])"
170
- result: "\\1\\1"
171
- - pattern: "[っッ]([Cc])" # ッ followed by ch-
172
- result: "T\\1"
173
- - pattern: "[っッ]" # drop all other っッ.
174
- result: ""
175
-
176
- characters:
177
- "ー": "" # Long vowel marker is ignored
178
-
179
- "あ": "A"
180
- "い": "I"
181
- "う": "U"
182
- "え": "E"
183
- "お": "O"
184
- "おう": "O"
185
-
186
- "か": "KA"
187
- "き": "KI"
188
- "く": "KU"
189
- "け": "KE"
190
- "こ": "KO"
191
- "きゃ": "KYA"
192
- "きゅ": "KYU"
193
- "きょ": "KYO"
194
- "きょう": "KYO"
195
- "こう": "KO"
196
-
197
- "さ": "SA"
198
- "し": "SHI"
199
- "す": "SU"
200
- "せ": "SE"
201
- "そ": "SO"
202
- "しゃ": "SHA"
203
- "しゅ": "SHU"
204
- "しょ": "SHO"
205
- "しょう": "SHO"
206
- "そう": "SO"
207
-
208
- "た": "TA"
209
- "ち": "CHI"
210
- "つ": "TSU"
211
- "て": "TE"
212
- "と": "TO"
213
- "ちゃ": "CHA"
214
- "ちゅ": "CHU"
215
- "ちょ": "CHO"
216
- "とう": "TO"
217
- "ちょう": "CHO"
218
-
219
- "な": "NA"
220
- "に": "NI"
221
- "ぬ": "NU"
222
- "ね": "NE"
223
- "の": "NO"
224
- "にゃ": "NYA"
225
- "にゅ": "NYU"
226
- "にょ": "NYO"
227
- "にょう": "NYO"
228
- "のう": "NO"
229
-
230
- "は": "HA"
231
- "ひ": "HI"
232
- "ふ": "FU"
233
- "へ": "HE"
234
- "ほ": "HO"
235
- "ひゃ": "HYA"
236
- "ひゅ": "HYU"
237
- "ひょ": "HYO"
238
- "ひょう": "HYO"
239
- "ほう": "HO"
240
-
241
- "ま": "MA"
242
- "み": "MI"
243
- "む": "MU"
244
- "め": "ME"
245
- "も": "MO"
246
- "みゃ": "MYA"
247
- "みゅ": "MYU"
248
- "みょ": "MYO"
249
- "みょう": "MYO"
250
- "もう": "MO"
251
-
252
- "や": "YA"
253
- "ゆ": "YU"
254
- "よ": "YO"
255
- "よう": "YO"
256
-
257
- "ら": "RA"
258
- "り": "RI"
259
- "る": "RU"
260
- "れ": "RE"
261
- "ろ": "RO"
262
- "りゃ": "RYA"
263
- "りゅ": "RYU"
264
- "りょ": "RYO"
265
- "りょう": "RYO"
266
- "ろう": "RO"
267
-
268
- "わ": "WA"
269
- "ゐ": "I"
270
- "ゑ": "E"
271
- "を": "O"
272
-
273
- "が": "GA"
274
- "ぎ": "GI"
275
- "ぐ": "GU"
276
- "げ": "GE"
277
- "ご": "GO"
278
- "ぎゃ": "GYA"
279
- "ぎゅ": "GYU"
280
- "ぎょ": "GYO"
281
- "ぎょう": "GYO"
282
- "ごう": "GO"
283
-
284
- "ざ": "ZA"
285
- "じ": "JI"
286
- "ず": "ZU"
287
- "ぜ": "ZE"
288
- "ぞ": "ZO"
289
- "じゃ": "JA"
290
- "じゅ": "JU"
291
- "じょ": "JO"
292
- "じょう": "JO"
293
- "ぞう": "ZO"
294
-
295
-
296
- "だ": "DA"
297
- "ぢ": "JI"
298
- "づ": "ZU"
299
- "で": "DE"
300
- "ど": "DO"
301
- "ぢゃ": "JA"
302
- "ぢゅ": "JU"
303
- "ぢょ": "JO"
304
- "どう": "DO"
305
-
306
- "ば": "BA"
307
- "び": "BI"
308
- "ぶ": "BU"
309
- "べ": "BE"
310
- "ぼ": "BO"
311
- "びゃ": "BYA"
312
- "びゅ": "BYU"
313
- "びょ": "BYO"
314
- "びょう": "BYO"
315
- "ぼう": "BO"
316
-
317
- "ぱ": "PA"
318
- "ぴ": "PI"
319
- "ぷ": "PU"
320
- "ぺ": "PE"
321
- "ぽ": "PO"
322
- "ぴゃ": "PYA"
323
- "ぴゅ": "PYU"
324
- "ぴょ": "PYO"
325
- "ぴょう": "PYO"
326
- "ぽう": "PO"
327
-
328
- "ん": "N"
329
-
330
- # KATAKANA
331
-
332
- "ア": "A"
333
- "イ": "I"
334
- "ウ": "U"
335
- "エ": "E"
336
- "オ": "O"
337
- "オウ": "O"
338
-
339
- "カ": "KA"
340
- "キ": "KI"
341
- "ク": "KU"
342
- "ケ": "KE"
343
- "コ": "KO"
344
- "キャ": "KYA"
345
- "キュ": "KYU"
346
- "キョ": "KYO"
347
- "コウ": "KO"
348
- "キョウ": "KYO"
349
- "コウ": "KO"
350
-
351
- "サ": "SA"
352
- "シ": "SHI"
353
- "ス": "SU"
354
- "セ": "SE"
355
- "ソ": "SO"
356
- "シャ": "SHA"
357
- "シュ": "SHU"
358
- "ショ": "SHO"
359
- "ショウ": "SHO"
360
- "ソウ": "SO"
361
-
362
- "タ": "TA"
363
- "チ": "CHI"
364
- "ツ": "TSU"
365
- "テ": "TE"
366
- "ト": "TO"
367
- "チャ": "CHA"
368
- "チュ": "CHU"
369
- "チョ": "CHO"
370
- "チョウ": "CHO"
371
- "トウ": "TO"
372
-
373
- "ナ": "NA"
374
- "ニ": "NI"
375
- "ヌ": "NU"
376
- "ネ": "NE"
377
- "ノ": "NO"
378
- "ニャ": "NYA"
379
- "ニュ": "NYU"
380
- "ニョ": "NYO"
381
- "ニョウ": "NYO"
382
- "ノウ": "NO"
383
-
384
- "ハ": "HA"
385
- "ヒ": "HI"
386
- "フ": "FU"
387
- "ヘ": "HE"
388
- "ホ": "HO"
389
- "ヒャ": "HYA"
390
- "ヒュ": "HYU"
391
- "ヒョ": "HYO"
392
- "ヒョウ": "HYO"
393
- "ホウ": "HO"
394
-
395
- "マ": "MA"
396
- "ミ": "MI"
397
- "ム": "MU"
398
- "メ": "ME"
399
- "モ": "MO"
400
- "ミャ": "MYA"
401
- "ミュ": "MYU"
402
- "ミョ": "MYO"
403
- "ミョウ": "MYO"
404
- "モウ": "MO"
405
-
406
- "ヤ": "YA"
407
- "ユ": "YU"
408
- "ヨ": "YO"
409
- "ヨウ": "YO"
410
-
411
- "ラ": "RA"
412
- "リ": "RI"
413
- "ル": "RU"
414
- "レ": "RE"
415
- "ロ": "RO"
416
- "リャ": "RYA"
417
- "リュ": "RYU"
418
- "リョ": "RYO"
419
- "リョウ": "RYO"
420
- "ロウ": "RO"
421
-
422
- "ワ": "WA"
423
- "ヰ": "I"
424
- "ヱ": "E"
425
- "ヲ": "O"
426
-
427
- "ガ": "GA"
428
- "ギ": "GI"
429
- "グ": "GU"
430
- "ゲ": "GE"
431
- "ゴ": "GO"
432
- "ギャ": "GYA"
433
- "ギュ": "GYU"
434
- "ギョ": "GYO"
435
- "ギョウ": "GYO"
436
- "ゴウ": "GO"
437
-
438
- "ザ": "ZA"
439
- "ジ": "JI"
440
- "ズ": "ZU"
441
- "ゼ": "ZE"
442
- "ゾ": "ZO"
443
- "ジャ": "JA"
444
- "ジュ": "JU"
445
- "ジョ": "JO"
446
- "ジョウ": "JO"
447
- "ゾウ": "ZO"
448
-
449
- "ダ": "DA"
450
- "ヂ": "JI"
451
- "ヅ": "ZU"
452
- "デ": "DE"
453
- "ド": "DO"
454
- "ヂャ": "JA"
455
- "ヂュ": "JU"
456
- "ヂョ": "JO"
457
- "ドウ": "DO"
458
-
459
- "バ": "BA"
460
- "ビ": "BI"
461
- "ブ": "BU"
462
- "ベ": "BE"
463
- "ボ": "BO"
464
- "ビャ": "BYA"
465
- "ビュ": "BYU"
466
- "ビョ": "BYO"
467
- "ビョウ": "BYO"
468
- "ボウ": "BO"
469
-
470
- "パ": "PA"
471
- "ピ": "PI"
472
- "プ": "PU"
473
- "ペ": "PE"
474
- "ポ": "PO"
475
- "ピャ": "PYA"
476
- "ピュ": "PYU"
477
- "ピョ": "PYO"
478
- "ピョウ": "PYO"
479
- "ポウ": "PO"
480
-
481
- "ン": "N"
482
-
483
- # Additional combinations
484
-
485
- "しぇ": "SHIE"
486
- "ちぇ": "CHIE"
487
- "てぃ": "TEI"
488
- "にぃ": "NII"
489
- "にぇ": "NIE"
490
- "ふぁ": "FUA"
491
- "ふぃ": "FUI"
492
- "ふぇ": "FUE"
493
- "ふぉ": "FUO"
494
- "じぇ": "JIE"
495
- "でぃ": "DEI"
496
- "でゅ": "DEYU"
497
- "うぃ": "UI"
498
- "うぇ": "UE"
499
- "うぉ": "UO"
500
- "ゔぁ":
501
- - "BA"
502
- - "BUA"
503
- "ゔぃ":
504
- - "BI"
505
- - "BUI"
506
- "ゔ": "BU"
507
- "ゔぇ":
508
- - "BE"
509
- - "BUE"
510
- "ゔぉ":
511
- - "BO"
512
- - "BUO"
513
-
514
- "シェ": "SHIE"
515
- "チェ": "CHIE"
516
- "ティ": "TEI"
517
- "ニィ": "NII"
518
- "ニェ": "NIE"
519
- "ファ": "FUA"
520
- "フィ": "FUI"
521
- "フェ": "FUE"
522
- "フォ": "FUO"
523
- "ジェ": "JIE"
524
- "ディ": "DEI"
525
- "デュ": "DEYU"
526
- "ウィ": "UI"
527
- "ウェ": "UE"
528
- "ウォ": "UO"
529
- "ヴァ":
530
- - "BA"
531
- - "BUA"
532
- "ヴィ":
533
- - "BI"
534
- - "BUI"
535
- "ヴ": "BU"
536
- "ヴェ":
537
- - "BE"
538
- - "BUE"
539
- "ヴォ":
540
- - "BO"
541
- - "BUO"