@kensio/pinyinjs 1.7.3 → 1.7.5
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.
- package/dist/accuracy/score-case.d.ts +23 -0
- package/dist/accuracy/score-case.d.ts.map +1 -0
- package/dist/accuracy/score-case.js +63 -0
- package/dist/accuracy/score-case.js.map +1 -0
- package/dist/accuracy/score.d.ts +1 -8
- package/dist/accuracy/score.d.ts.map +1 -1
- package/dist/accuracy/score.js +1 -55
- package/dist/accuracy/score.js.map +1 -1
- package/dist/cli/arguments.d.ts +4 -290
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +5 -357
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/check-command.d.ts +9 -0
- package/dist/cli/check-command.d.ts.map +1 -0
- package/dist/cli/check-command.js +95 -0
- package/dist/cli/check-command.js.map +1 -0
- package/dist/cli/cli-input.d.ts +49 -0
- package/dist/cli/cli-input.d.ts.map +1 -0
- package/dist/cli/cli-input.js +31 -0
- package/dist/cli/cli-input.js.map +1 -0
- package/dist/cli/command.d.ts +97 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +40 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands.d.ts +7 -110
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +14 -991
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/convert-command.d.ts +6 -0
- package/dist/cli/convert-command.d.ts.map +1 -0
- package/dist/cli/convert-command.js +52 -0
- package/dist/cli/convert-command.js.map +1 -0
- package/dist/cli/environment.d.ts +1 -1
- package/dist/cli/environment.d.ts.map +1 -1
- package/dist/cli/explain-command.d.ts +6 -0
- package/dist/cli/explain-command.d.ts.map +1 -0
- package/dist/cli/explain-command.js +40 -0
- package/dist/cli/explain-command.js.map +1 -0
- package/dist/cli/explain-syllable.d.ts +10 -0
- package/dist/cli/explain-syllable.d.ts.map +1 -0
- package/dist/cli/explain-syllable.js +70 -0
- package/dist/cli/explain-syllable.js.map +1 -0
- package/dist/cli/flag-help.d.ts +18 -0
- package/dist/cli/flag-help.d.ts.map +1 -0
- package/dist/cli/flag-help.js +78 -0
- package/dist/cli/flag-help.js.map +1 -0
- package/dist/cli/flag-lists.d.ts +49 -0
- package/dist/cli/flag-lists.d.ts.map +1 -0
- package/dist/cli/flag-lists.js +58 -0
- package/dist/cli/flag-lists.js.map +1 -0
- package/dist/cli/flag-values.d.ts +44 -0
- package/dist/cli/flag-values.d.ts.map +1 -0
- package/dist/cli/flag-values.js +56 -0
- package/dist/cli/flag-values.js.map +1 -0
- package/dist/cli/flags.d.ts +193 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +133 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/format-options.d.ts +29 -0
- package/dist/cli/format-options.d.ts.map +1 -0
- package/dist/cli/format-options.js +72 -0
- package/dist/cli/format-options.js.map +1 -0
- package/dist/cli/global-help.d.ts +23 -0
- package/dist/cli/global-help.d.ts.map +1 -0
- package/dist/cli/global-help.js +40 -0
- package/dist/cli/global-help.js.map +1 -0
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -99
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/html-commands.d.ts +13 -0
- package/dist/cli/html-commands.d.ts.map +1 -0
- package/dist/cli/html-commands.js +49 -0
- package/dist/cli/html-commands.js.map +1 -0
- package/dist/cli/info-command.d.ts +7 -0
- package/dist/cli/info-command.d.ts.map +1 -0
- package/dist/cli/info-command.js +39 -0
- package/dist/cli/info-command.js.map +1 -0
- package/dist/cli/lookup-commands.d.ts +10 -0
- package/dist/cli/lookup-commands.d.ts.map +1 -0
- package/dist/cli/lookup-commands.js +101 -0
- package/dist/cli/lookup-commands.js.map +1 -0
- package/dist/cli/match-command.d.ts +11 -0
- package/dist/cli/match-command.d.ts.map +1 -0
- package/dist/cli/match-command.js +76 -0
- package/dist/cli/match-command.js.map +1 -0
- package/dist/cli/number-command.d.ts +12 -0
- package/dist/cli/number-command.d.ts.map +1 -0
- package/dist/cli/number-command.js +89 -0
- package/dist/cli/number-command.js.map +1 -0
- package/dist/cli/options.d.ts +30 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +54 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/run-command.d.ts +24 -0
- package/dist/cli/run-command.d.ts.map +1 -0
- package/dist/cli/run-command.js +40 -0
- package/dist/cli/run-command.js.map +1 -0
- package/dist/cli/run.d.ts +4 -42
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +6 -61
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/script-command.d.ts +10 -0
- package/dist/cli/script-command.d.ts.map +1 -0
- package/dist/cli/script-command.js +58 -0
- package/dist/cli/script-command.js.map +1 -0
- package/dist/cli/segment-command.d.ts +11 -0
- package/dist/cli/segment-command.d.ts.map +1 -0
- package/dist/cli/segment-command.js +53 -0
- package/dist/cli/segment-command.js.map +1 -0
- package/dist/cli/slug-command.d.ts +10 -0
- package/dist/cli/slug-command.d.ts.map +1 -0
- package/dist/cli/slug-command.js +28 -0
- package/dist/cli/slug-command.js.map +1 -0
- package/dist/cli/syllable-command.d.ts +14 -0
- package/dist/cli/syllable-command.d.ts.map +1 -0
- package/dist/cli/syllable-command.js +82 -0
- package/dist/cli/syllable-command.js.map +1 -0
- package/dist/cli/system-table.d.ts +12 -0
- package/dist/cli/system-table.d.ts.map +1 -0
- package/dist/cli/system-table.js +48 -0
- package/dist/cli/system-table.js.map +1 -0
- package/dist/cli/systems.d.ts +57 -0
- package/dist/cli/systems.d.ts.map +1 -0
- package/dist/cli/systems.js +27 -0
- package/dist/cli/systems.js.map +1 -0
- package/dist/cli/transcribe-command.d.ts +18 -0
- package/dist/cli/transcribe-command.d.ts.map +1 -0
- package/dist/cli/transcribe-command.js +86 -0
- package/dist/cli/transcribe-command.js.map +1 -0
- package/dist/cli/transcribe-reading.d.ts +15 -0
- package/dist/cli/transcribe-reading.d.ts.map +1 -0
- package/dist/cli/transcribe-reading.js +90 -0
- package/dist/cli/transcribe-reading.js.map +1 -0
- package/dist/cli/transcribe-rows.d.ts +26 -0
- package/dist/cli/transcribe-rows.d.ts.map +1 -0
- package/dist/cli/transcribe-rows.js +30 -0
- package/dist/cli/transcribe-rows.js.map +1 -0
- package/dist/cli/usage-error.d.ts +9 -0
- package/dist/cli/usage-error.d.ts.map +1 -0
- package/dist/cli/usage-error.js +9 -0
- package/dist/cli/usage-error.js.map +1 -0
- package/dist/decode/alternatives.d.ts +16 -0
- package/dist/decode/alternatives.d.ts.map +1 -0
- package/dist/decode/alternatives.js +31 -0
- package/dist/decode/alternatives.js.map +1 -0
- package/dist/decode/confidence.d.ts.map +1 -1
- package/dist/decode/confidence.js +3 -118
- package/dist/decode/confidence.js.map +1 -1
- package/dist/decode/convert-options.d.ts +116 -0
- package/dist/decode/convert-options.d.ts.map +1 -0
- package/dist/decode/convert-options.js +2 -0
- package/dist/decode/convert-options.js.map +1 -0
- package/dist/decode/convert-pipeline.d.ts +18 -0
- package/dist/decode/convert-pipeline.d.ts.map +1 -0
- package/dist/decode/convert-pipeline.js +66 -0
- package/dist/decode/convert-pipeline.js.map +1 -0
- package/dist/decode/convert.d.ts +9 -118
- package/dist/decode/convert.d.ts.map +1 -1
- package/dist/decode/convert.js +5 -453
- package/dist/decode/convert.js.map +1 -1
- package/dist/decode/decode.d.ts +2 -15
- package/dist/decode/decode.d.ts.map +1 -1
- package/dist/decode/decode.js +2 -121
- package/dist/decode/decode.js.map +1 -1
- package/dist/decode/decoders.d.ts +32 -0
- package/dist/decode/decoders.d.ts.map +1 -0
- package/dist/decode/decoders.js +29 -0
- package/dist/decode/decoders.js.map +1 -0
- package/dist/decode/edge-context.d.ts +38 -0
- package/dist/decode/edge-context.d.ts.map +1 -0
- package/dist/decode/edge-context.js +57 -0
- package/dist/decode/edge-context.js.map +1 -0
- package/dist/decode/hint-lattice.d.ts +45 -0
- package/dist/decode/hint-lattice.d.ts.map +1 -0
- package/dist/decode/hint-lattice.js +140 -0
- package/dist/decode/hint-lattice.js.map +1 -0
- package/dist/decode/hints.d.ts +2 -45
- package/dist/decode/hints.d.ts.map +1 -1
- package/dist/decode/hints.js +1 -139
- package/dist/decode/hints.js.map +1 -1
- package/dist/decode/jiao-rule.d.ts +58 -0
- package/dist/decode/jiao-rule.d.ts.map +1 -0
- package/dist/decode/jiao-rule.js +76 -0
- package/dist/decode/jiao-rule.js.map +1 -0
- package/dist/decode/lattice-costs.d.ts +55 -0
- package/dist/decode/lattice-costs.d.ts.map +1 -0
- package/dist/decode/lattice-costs.js +90 -0
- package/dist/decode/lattice-costs.js.map +1 -0
- package/dist/decode/lattice-edges.d.ts +29 -0
- package/dist/decode/lattice-edges.d.ts.map +1 -0
- package/dist/decode/lattice-edges.js +78 -0
- package/dist/decode/lattice-edges.js.map +1 -0
- package/dist/decode/lattice-slice.d.ts +37 -0
- package/dist/decode/lattice-slice.d.ts.map +1 -0
- package/dist/decode/lattice-slice.js +43 -0
- package/dist/decode/lattice-slice.js.map +1 -0
- package/dist/decode/lattice-types.d.ts +82 -0
- package/dist/decode/lattice-types.d.ts.map +1 -0
- package/dist/decode/lattice-types.js +44 -0
- package/dist/decode/lattice-types.js.map +1 -0
- package/dist/decode/lattice.d.ts +2 -59
- package/dist/decode/lattice.d.ts.map +1 -1
- package/dist/decode/lattice.js +2 -118
- package/dist/decode/lattice.js.map +1 -1
- package/dist/decode/number-pieces.d.ts +62 -0
- package/dist/decode/number-pieces.d.ts.map +1 -0
- package/dist/decode/number-pieces.js +106 -0
- package/dist/decode/number-pieces.js.map +1 -0
- package/dist/decode/numbers.d.ts +53 -0
- package/dist/decode/numbers.d.ts.map +1 -0
- package/dist/decode/numbers.js +69 -0
- package/dist/decode/numbers.js.map +1 -0
- package/dist/decode/pieces.d.ts +78 -0
- package/dist/decode/pieces.d.ts.map +1 -0
- package/dist/decode/pieces.js +136 -0
- package/dist/decode/pieces.js.map +1 -0
- package/dist/decode/polyphone-rules.d.ts +31 -0
- package/dist/decode/polyphone-rules.d.ts.map +1 -0
- package/dist/decode/polyphone-rules.js +159 -0
- package/dist/decode/polyphone-rules.js.map +1 -0
- package/dist/decode/reading-rules.d.ts +2 -97
- package/dist/decode/reading-rules.d.ts.map +1 -1
- package/dist/decode/reading-rules.js +4 -365
- package/dist/decode/reading-rules.js.map +1 -1
- package/dist/decode/rules.d.ts +1 -17
- package/dist/decode/rules.d.ts.map +1 -1
- package/dist/decode/rules.js +1 -43
- package/dist/decode/rules.js.map +1 -1
- package/dist/decode/run-lattice.d.ts +52 -0
- package/dist/decode/run-lattice.d.ts.map +1 -0
- package/dist/decode/run-lattice.js +91 -0
- package/dist/decode/run-lattice.js.map +1 -0
- package/dist/decode/sandhi-tones.d.ts +69 -0
- package/dist/decode/sandhi-tones.d.ts.map +1 -0
- package/dist/decode/sandhi-tones.js +88 -0
- package/dist/decode/sandhi-tones.js.map +1 -0
- package/dist/decode/sandhi.d.ts +1 -1
- package/dist/decode/sandhi.d.ts.map +1 -1
- package/dist/decode/sandhi.js +1 -81
- package/dist/decode/sandhi.js.map +1 -1
- package/dist/decode/script-types.d.ts +76 -0
- package/dist/decode/script-types.d.ts.map +1 -0
- package/dist/decode/script-types.js +35 -0
- package/dist/decode/script-types.js.map +1 -0
- package/dist/decode/script-words.d.ts +32 -0
- package/dist/decode/script-words.d.ts.map +1 -0
- package/dist/decode/script-words.js +77 -0
- package/dist/decode/script-words.js.map +1 -0
- package/dist/decode/script.d.ts +3 -73
- package/dist/decode/script.d.ts.map +1 -1
- package/dist/decode/script.js +3 -109
- package/dist/decode/script.js.map +1 -1
- package/dist/decode/tan-rule.d.ts +68 -0
- package/dist/decode/tan-rule.d.ts.map +1 -0
- package/dist/decode/tan-rule.js +131 -0
- package/dist/decode/tan-rule.js.map +1 -0
- package/dist/decode/write-run.d.ts +28 -0
- package/dist/decode/write-run.d.ts.map +1 -0
- package/dist/decode/write-run.js +77 -0
- package/dist/decode/write-run.js.map +1 -0
- package/dist/dictionary/artifact-claims.d.ts +25 -0
- package/dist/dictionary/artifact-claims.d.ts.map +1 -0
- package/dist/dictionary/artifact-claims.js +47 -0
- package/dist/dictionary/artifact-claims.js.map +1 -0
- package/dist/dictionary/artifact-format.d.ts +86 -0
- package/dist/dictionary/artifact-format.d.ts.map +1 -0
- package/dist/dictionary/artifact-format.js +91 -0
- package/dist/dictionary/artifact-format.js.map +1 -0
- package/dist/dictionary/artifact-read.d.ts +34 -0
- package/dist/dictionary/artifact-read.d.ts.map +1 -0
- package/dist/dictionary/artifact-read.js +114 -0
- package/dist/dictionary/artifact-read.js.map +1 -0
- package/dist/dictionary/artifact.d.ts +4 -63
- package/dist/dictionary/artifact.d.ts.map +1 -1
- package/dist/dictionary/artifact.js +12 -229
- package/dist/dictionary/artifact.js.map +1 -1
- package/dist/dictionary/assertions.d.ts +5 -57
- package/dist/dictionary/assertions.d.ts.map +1 -1
- package/dist/dictionary/assertions.js +4 -317
- package/dist/dictionary/assertions.js.map +1 -1
- package/dist/dictionary/build-assertions.d.ts +12 -0
- package/dist/dictionary/build-assertions.d.ts.map +1 -0
- package/dist/dictionary/build-assertions.js +13 -0
- package/dist/dictionary/build-assertions.js.map +1 -0
- package/dist/dictionary/built-dictionary.d.ts +46 -0
- package/dist/dictionary/built-dictionary.d.ts.map +1 -0
- package/dist/dictionary/built-dictionary.js +97 -0
- package/dist/dictionary/built-dictionary.js.map +1 -0
- package/dist/dictionary/cedict-senses.d.ts +80 -0
- package/dist/dictionary/cedict-senses.d.ts.map +1 -0
- package/dist/dictionary/cedict-senses.js +114 -0
- package/dist/dictionary/cedict-senses.js.map +1 -0
- package/dist/dictionary/character-defaults.d.ts +26 -0
- package/dist/dictionary/character-defaults.d.ts.map +1 -0
- package/dist/dictionary/character-defaults.js +67 -0
- package/dist/dictionary/character-defaults.js.map +1 -0
- package/dist/dictionary/character-readings.d.ts +10 -0
- package/dist/dictionary/character-readings.d.ts.map +1 -0
- package/dist/dictionary/character-readings.js +25 -0
- package/dist/dictionary/character-readings.js.map +1 -0
- package/dist/dictionary/dictionary-entry.d.ts +37 -0
- package/dist/dictionary/dictionary-entry.d.ts.map +1 -0
- package/dist/dictionary/dictionary-entry.js +41 -0
- package/dist/dictionary/dictionary-entry.js.map +1 -0
- package/dist/dictionary/dictionary-readings.d.ts +56 -0
- package/dist/dictionary/dictionary-readings.d.ts.map +1 -0
- package/dist/dictionary/dictionary-readings.js +93 -0
- package/dist/dictionary/dictionary-readings.js.map +1 -0
- package/dist/dictionary/dictionary.d.ts +6 -60
- package/dist/dictionary/dictionary.d.ts.map +1 -1
- package/dist/dictionary/dictionary.js +9 -169
- package/dist/dictionary/dictionary.js.map +1 -1
- package/dist/dictionary/entry-invariants.d.ts +3 -0
- package/dist/dictionary/entry-invariants.d.ts.map +1 -0
- package/dist/dictionary/entry-invariants.js +67 -0
- package/dist/dictionary/entry-invariants.js.map +1 -0
- package/dist/dictionary/entry-lines.d.ts +35 -0
- package/dist/dictionary/entry-lines.d.ts.map +1 -0
- package/dist/dictionary/entry-lines.js +70 -0
- package/dist/dictionary/entry-lines.js.map +1 -0
- package/dist/dictionary/erhua-repair.d.ts +26 -0
- package/dist/dictionary/erhua-repair.d.ts.map +1 -0
- package/dist/dictionary/erhua-repair.js +49 -0
- package/dist/dictionary/erhua-repair.js.map +1 -0
- package/dist/dictionary/frequency-tones.d.ts +74 -0
- package/dist/dictionary/frequency-tones.d.ts.map +1 -0
- package/dist/dictionary/frequency-tones.js +128 -0
- package/dist/dictionary/frequency-tones.js.map +1 -0
- package/dist/dictionary/inventory-invariants.d.ts +3 -0
- package/dist/dictionary/inventory-invariants.d.ts.map +1 -0
- package/dist/dictionary/inventory-invariants.js +54 -0
- package/dist/dictionary/inventory-invariants.js.map +1 -0
- package/dist/dictionary/locale-candidates.d.ts +40 -0
- package/dist/dictionary/locale-candidates.d.ts.map +1 -0
- package/dist/dictionary/locale-candidates.js +77 -0
- package/dist/dictionary/locale-candidates.js.map +1 -0
- package/dist/dictionary/locale-segments.d.ts +47 -0
- package/dist/dictionary/locale-segments.d.ts.map +1 -0
- package/dist/dictionary/locale-segments.js +141 -0
- package/dist/dictionary/locale-segments.js.map +1 -0
- package/dist/dictionary/locale.d.ts +1 -21
- package/dist/dictionary/locale.d.ts.map +1 -1
- package/dist/dictionary/locale.js +9 -198
- package/dist/dictionary/locale.js.map +1 -1
- package/dist/dictionary/merge-types.d.ts +121 -0
- package/dist/dictionary/merge-types.d.ts.map +1 -0
- package/dist/dictionary/merge-types.js +35 -0
- package/dist/dictionary/merge-types.js.map +1 -0
- package/dist/dictionary/merge-word.d.ts +7 -0
- package/dist/dictionary/merge-word.d.ts.map +1 -0
- package/dist/dictionary/merge-word.js +91 -0
- package/dist/dictionary/merge-word.js.map +1 -0
- package/dist/dictionary/merge.d.ts +5 -62
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +30 -713
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/dictionary/proper-noun.d.ts +28 -0
- package/dist/dictionary/proper-noun.d.ts.map +1 -0
- package/dist/dictionary/proper-noun.js +43 -0
- package/dist/dictionary/proper-noun.js.map +1 -0
- package/dist/dictionary/reading-agreement.d.ts +71 -0
- package/dist/dictionary/reading-agreement.d.ts.map +1 -0
- package/dist/dictionary/reading-agreement.js +156 -0
- package/dist/dictionary/reading-agreement.js.map +1 -0
- package/dist/dictionary/script-conversion.d.ts +28 -0
- package/dist/dictionary/script-conversion.d.ts.map +1 -0
- package/dist/dictionary/script-conversion.js +58 -0
- package/dist/dictionary/script-conversion.js.map +1 -0
- package/dist/dictionary/script-pairings.d.ts +74 -0
- package/dist/dictionary/script-pairings.d.ts.map +1 -0
- package/dist/dictionary/script-pairings.js +120 -0
- package/dist/dictionary/script-pairings.js.map +1 -0
- package/dist/dictionary/script-tables.d.ts.map +1 -1
- package/dist/dictionary/script-tables.js +2 -165
- package/dist/dictionary/script-tables.js.map +1 -1
- package/dist/dictionary/taiwan-reading.d.ts +8 -0
- package/dist/dictionary/taiwan-reading.d.ts.map +1 -0
- package/dist/dictionary/taiwan-reading.js +38 -0
- package/dist/dictionary/taiwan-reading.js.map +1 -0
- package/dist/dictionary/tone-invariants.d.ts +3 -0
- package/dist/dictionary/tone-invariants.d.ts.map +1 -0
- package/dist/dictionary/tone-invariants.js +64 -0
- package/dist/dictionary/tone-invariants.js.map +1 -0
- package/dist/dictionary/traditional-form.d.ts +21 -0
- package/dist/dictionary/traditional-form.d.ts.map +1 -0
- package/dist/dictionary/traditional-form.js +59 -0
- package/dist/dictionary/traditional-form.js.map +1 -0
- package/dist/dictionary/traditional-ranking.d.ts +22 -0
- package/dist/dictionary/traditional-ranking.d.ts.map +1 -0
- package/dist/dictionary/traditional-ranking.js +74 -0
- package/dist/dictionary/traditional-ranking.js.map +1 -0
- package/dist/dictionary/traditional-table.d.ts +51 -0
- package/dist/dictionary/traditional-table.d.ts.map +1 -0
- package/dist/dictionary/traditional-table.js +98 -0
- package/dist/dictionary/traditional-table.js.map +1 -0
- package/dist/dictionary/traditional.d.ts +3 -56
- package/dist/dictionary/traditional.d.ts.map +1 -1
- package/dist/dictionary/traditional.js +3 -186
- package/dist/dictionary/traditional.js.map +1 -1
- package/dist/dictionary/variant-counts.d.ts +39 -0
- package/dist/dictionary/variant-counts.d.ts.map +1 -0
- package/dist/dictionary/variant-counts.js +38 -0
- package/dist/dictionary/variant-counts.js.map +1 -0
- package/dist/dictionary/word-reading.d.ts +26 -0
- package/dist/dictionary/word-reading.d.ts.map +1 -0
- package/dist/dictionary/word-reading.js +76 -0
- package/dist/dictionary/word-reading.js.map +1 -0
- package/dist/dictionary/word-readings.d.ts +15 -0
- package/dist/dictionary/word-readings.d.ts.map +1 -0
- package/dist/dictionary/word-readings.js +38 -0
- package/dist/dictionary/word-readings.js.map +1 -0
- package/dist/format/annotate.d.ts +90 -0
- package/dist/format/annotate.d.ts.map +1 -0
- package/dist/format/annotate.js +168 -0
- package/dist/format/annotate.js.map +1 -0
- package/dist/format/html.d.ts +15 -46
- package/dist/format/html.d.ts.map +1 -1
- package/dist/format/html.js +3 -162
- package/dist/format/html.js.map +1 -1
- package/dist/format/slug-hash.d.ts +51 -0
- package/dist/format/slug-hash.d.ts.map +1 -0
- package/dist/format/slug-hash.js +74 -0
- package/dist/format/slug-hash.js.map +1 -0
- package/dist/format/slug-options.d.ts +98 -0
- package/dist/format/slug-options.d.ts.map +1 -0
- package/dist/format/slug-options.js +2 -0
- package/dist/format/slug-options.js.map +1 -0
- package/dist/format/slug-words.d.ts +27 -0
- package/dist/format/slug-words.d.ts.map +1 -0
- package/dist/format/slug-words.js +0 -0
- package/dist/format/slug-words.js.map +1 -0
- package/dist/format/slug.d.ts +3 -128
- package/dist/format/slug.d.ts.map +1 -1
- package/dist/format/slug.js +0 -0
- package/dist/format/slug.js.map +1 -1
- package/dist/grade/check-readings.d.ts +41 -0
- package/dist/grade/check-readings.d.ts.map +1 -0
- package/dist/grade/check-readings.js +36 -0
- package/dist/grade/check-readings.js.map +1 -0
- package/dist/grade/check.d.ts +4 -4
- package/dist/grade/check.d.ts.map +1 -1
- package/dist/grade/check.js +5 -270
- package/dist/grade/check.js.map +1 -1
- package/dist/grade/pair-syllables.d.ts +48 -0
- package/dist/grade/pair-syllables.d.ts.map +1 -0
- package/dist/grade/pair-syllables.js +71 -0
- package/dist/grade/pair-syllables.js.map +1 -0
- package/dist/grade/reading-syllables.d.ts +62 -0
- package/dist/grade/reading-syllables.d.ts.map +1 -0
- package/dist/grade/reading-syllables.js +58 -0
- package/dist/grade/reading-syllables.js.map +1 -0
- package/dist/grade/reading-tolerance.d.ts +72 -0
- package/dist/grade/reading-tolerance.d.ts.map +1 -0
- package/dist/grade/reading-tolerance.js +107 -0
- package/dist/grade/reading-tolerance.js.map +1 -0
- package/dist/grade/typed-reading.d.ts +28 -0
- package/dist/grade/typed-reading.d.ts.map +1 -0
- package/dist/grade/typed-reading.js +36 -0
- package/dist/grade/typed-reading.js.map +1 -0
- package/dist/numerals/numeral-parse.d.ts +32 -0
- package/dist/numerals/numeral-parse.d.ts.map +1 -0
- package/dist/numerals/numeral-parse.js +44 -0
- package/dist/numerals/numeral-parse.js.map +1 -0
- package/dist/numerals/numeral-shapes.d.ts +89 -0
- package/dist/numerals/numeral-shapes.d.ts.map +1 -0
- package/dist/numerals/numeral-shapes.js +99 -0
- package/dist/numerals/numeral-shapes.js.map +1 -0
- package/dist/numerals/numerals.d.ts.map +1 -1
- package/dist/numerals/numerals.js +2 -36
- package/dist/numerals/numerals.js.map +1 -1
- package/dist/numerals/read-numeral.d.ts +76 -0
- package/dist/numerals/read-numeral.d.ts.map +1 -0
- package/dist/numerals/read-numeral.js +88 -0
- package/dist/numerals/read-numeral.js.map +1 -0
- package/dist/numerals/text.d.ts +3 -37
- package/dist/numerals/text.d.ts.map +1 -1
- package/dist/numerals/text.js +3 -254
- package/dist/numerals/text.js.map +1 -1
- package/dist/numerals/time.d.ts +34 -0
- package/dist/numerals/time.d.ts.map +1 -0
- package/dist/numerals/time.js +93 -0
- package/dist/numerals/time.js.map +1 -0
- package/dist/orthography/address-grouping.d.ts +34 -0
- package/dist/orthography/address-grouping.d.ts.map +1 -0
- package/dist/orthography/address-grouping.js +52 -0
- package/dist/orthography/address-grouping.js.map +1 -0
- package/dist/orthography/grouping.d.ts +3 -87
- package/dist/orthography/grouping.d.ts.map +1 -1
- package/dist/orthography/grouping.js +4 -270
- package/dist/orthography/grouping.js.map +1 -1
- package/dist/orthography/place-grouping.d.ts +39 -0
- package/dist/orthography/place-grouping.d.ts.map +1 -0
- package/dist/orthography/place-grouping.js +83 -0
- package/dist/orthography/place-grouping.js.map +1 -0
- package/dist/orthography/word-grouping.d.ts +48 -0
- package/dist/orthography/word-grouping.d.ts.map +1 -0
- package/dist/orthography/word-grouping.js +147 -0
- package/dist/orthography/word-grouping.js.map +1 -0
- package/dist/script/conversion-format.d.ts +22 -0
- package/dist/script/conversion-format.d.ts.map +1 -0
- package/dist/script/conversion-format.js +22 -0
- package/dist/script/conversion-format.js.map +1 -0
- package/dist/script/conversion-read.d.ts +9 -0
- package/dist/script/conversion-read.d.ts.map +1 -0
- package/dist/script/conversion-read.js +69 -0
- package/dist/script/conversion-read.js.map +1 -0
- package/dist/script/conversion-write.d.ts +14 -0
- package/dist/script/conversion-write.d.ts.map +1 -0
- package/dist/script/conversion-write.js +34 -0
- package/dist/script/conversion-write.js.map +1 -0
- package/dist/script/conversion.d.ts +10 -16
- package/dist/script/conversion.d.ts.map +1 -1
- package/dist/script/conversion.js +2 -115
- package/dist/script/conversion.js.map +1 -1
- package/dist/search/candidate-narrowing.d.ts +56 -0
- package/dist/search/candidate-narrowing.d.ts.map +1 -0
- package/dist/search/candidate-narrowing.js +55 -0
- package/dist/search/candidate-narrowing.js.map +1 -0
- package/dist/search/candidate-query.d.ts +25 -0
- package/dist/search/candidate-query.d.ts.map +1 -0
- package/dist/search/candidate-query.js +28 -0
- package/dist/search/candidate-query.js.map +1 -0
- package/dist/search/candidate-writings.d.ts +24 -0
- package/dist/search/candidate-writings.d.ts.map +1 -0
- package/dist/search/candidate-writings.js +114 -0
- package/dist/search/candidate-writings.js.map +1 -0
- package/dist/search/candidates.d.ts +7 -41
- package/dist/search/candidates.d.ts.map +1 -1
- package/dist/search/candidates.js +10 -164
- package/dist/search/candidates.js.map +1 -1
- package/dist/search/match-chunks.d.ts +19 -0
- package/dist/search/match-chunks.d.ts.map +1 -0
- package/dist/search/match-chunks.js +30 -0
- package/dist/search/match-chunks.js.map +1 -0
- package/dist/search/match-ranking.d.ts +39 -0
- package/dist/search/match-ranking.d.ts.map +1 -0
- package/dist/search/match-ranking.js +51 -0
- package/dist/search/match-ranking.js.map +1 -0
- package/dist/search/match-readings.d.ts +43 -0
- package/dist/search/match-readings.d.ts.map +1 -0
- package/dist/search/match-readings.js +83 -0
- package/dist/search/match-readings.js.map +1 -0
- package/dist/search/match-scoring.d.ts +146 -0
- package/dist/search/match-scoring.d.ts.map +1 -0
- package/dist/search/match-scoring.js +114 -0
- package/dist/search/match-scoring.js.map +1 -0
- package/dist/search/match-search.d.ts +28 -0
- package/dist/search/match-search.d.ts.map +1 -0
- package/dist/search/match-search.js +128 -0
- package/dist/search/match-search.js.map +1 -0
- package/dist/search/match.d.ts +5 -36
- package/dist/search/match.d.ts.map +1 -1
- package/dist/search/match.js +2 -379
- package/dist/search/match.js.map +1 -1
- package/dist/search/reverse-index-build.d.ts +30 -0
- package/dist/search/reverse-index-build.d.ts.map +1 -0
- package/dist/search/reverse-index-build.js +72 -0
- package/dist/search/reverse-index-build.js.map +1 -0
- package/dist/search/reverse-index-format.d.ts +60 -0
- package/dist/search/reverse-index-format.d.ts.map +1 -0
- package/dist/search/reverse-index-format.js +54 -0
- package/dist/search/reverse-index-format.js.map +1 -0
- package/dist/search/reverse-index-groups.d.ts +37 -0
- package/dist/search/reverse-index-groups.d.ts.map +1 -0
- package/dist/search/reverse-index-groups.js +71 -0
- package/dist/search/reverse-index-groups.js.map +1 -0
- package/dist/search/reverse-index-passes.d.ts +78 -0
- package/dist/search/reverse-index-passes.d.ts.map +1 -0
- package/dist/search/reverse-index-passes.js +59 -0
- package/dist/search/reverse-index-passes.js.map +1 -0
- package/dist/search/reverse-index-state.d.ts +36 -0
- package/dist/search/reverse-index-state.d.ts.map +1 -0
- package/dist/search/reverse-index-state.js +95 -0
- package/dist/search/reverse-index-state.js.map +1 -0
- package/dist/search/reverse-index.d.ts +8 -67
- package/dist/search/reverse-index.d.ts.map +1 -1
- package/dist/search/reverse-index.js +4 -255
- package/dist/search/reverse-index.js.map +1 -1
- package/dist/sources/unihan-readings.d.ts +58 -0
- package/dist/sources/unihan-readings.d.ts.map +1 -0
- package/dist/sources/unihan-readings.js +95 -0
- package/dist/sources/unihan-readings.js.map +1 -0
- package/dist/sources/unihan.d.ts +6 -9
- package/dist/sources/unihan.d.ts.map +1 -1
- package/dist/sources/unihan.js +2 -85
- package/dist/sources/unihan.js.map +1 -1
- package/dist/syllable/final-tables.d.ts +23 -0
- package/dist/syllable/final-tables.d.ts.map +1 -0
- package/dist/syllable/final-tables.js +50 -0
- package/dist/syllable/final-tables.js.map +1 -0
- package/dist/syllable/inventory.d.ts +8 -42
- package/dist/syllable/inventory.d.ts.map +1 -1
- package/dist/syllable/inventory.js +9 -918
- package/dist/syllable/inventory.js.map +1 -1
- package/dist/syllable/spellings.d.ts +40 -0
- package/dist/syllable/spellings.d.ts.map +1 -0
- package/dist/syllable/spellings.js +469 -0
- package/dist/syllable/spellings.js.map +1 -0
- package/dist/syllable/syllable-parts.d.ts +31 -0
- package/dist/syllable/syllable-parts.d.ts.map +1 -0
- package/dist/syllable/syllable-parts.js +105 -0
- package/dist/syllable/syllable-parts.js.map +1 -0
- package/dist/syllable/syllable.d.ts +1 -14
- package/dist/syllable/syllable.d.ts.map +1 -1
- package/dist/syllable/syllable.js +3 -144
- package/dist/syllable/syllable.js.map +1 -1
- package/dist/syllable/written-tones.d.ts +6 -0
- package/dist/syllable/written-tones.d.ts.map +1 -0
- package/dist/syllable/written-tones.js +453 -0
- package/dist/syllable/written-tones.js.map +1 -0
- package/dist/transcription/bopomofo-parse.d.ts +42 -0
- package/dist/transcription/bopomofo-parse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-parse.js +92 -0
- package/dist/transcription/bopomofo-parse.js.map +1 -0
- package/dist/transcription/bopomofo-reverse.d.ts +31 -0
- package/dist/transcription/bopomofo-reverse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-reverse.js +48 -0
- package/dist/transcription/bopomofo-reverse.js.map +1 -0
- package/dist/transcription/bopomofo-symbols.d.ts +36 -0
- package/dist/transcription/bopomofo-symbols.d.ts.map +1 -0
- package/dist/transcription/bopomofo-symbols.js +41 -0
- package/dist/transcription/bopomofo-symbols.js.map +1 -0
- package/dist/transcription/bopomofo-tables.d.ts +87 -0
- package/dist/transcription/bopomofo-tables.d.ts.map +1 -0
- package/dist/transcription/bopomofo-tables.js +180 -0
- package/dist/transcription/bopomofo-tables.js.map +1 -0
- package/dist/transcription/bopomofo.d.ts +14 -32
- package/dist/transcription/bopomofo.d.ts.map +1 -1
- package/dist/transcription/bopomofo.js +5 -343
- package/dist/transcription/bopomofo.js.map +1 -1
- package/dist/transcription/gwoyeu-first-second.d.ts +36 -0
- package/dist/transcription/gwoyeu-first-second.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-first-second.js +75 -0
- package/dist/transcription/gwoyeu-first-second.js.map +1 -0
- package/dist/transcription/gwoyeu-spelling.d.ts +38 -0
- package/dist/transcription/gwoyeu-spelling.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-spelling.js +124 -0
- package/dist/transcription/gwoyeu-spelling.js.map +1 -0
- package/dist/transcription/gwoyeu-tables.d.ts +93 -0
- package/dist/transcription/gwoyeu-tables.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tables.js +205 -0
- package/dist/transcription/gwoyeu-tables.js.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts +49 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.js +89 -0
- package/dist/transcription/gwoyeu-tonal-forms.js.map +1 -0
- package/dist/transcription/gwoyeu-vowels.d.ts +51 -0
- package/dist/transcription/gwoyeu-vowels.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-vowels.js +58 -0
- package/dist/transcription/gwoyeu-vowels.js.map +1 -0
- package/dist/transcription/gwoyeu.d.ts +1 -26
- package/dist/transcription/gwoyeu.d.ts.map +1 -1
- package/dist/transcription/gwoyeu.js +2 -540
- package/dist/transcription/gwoyeu.js.map +1 -1
- package/dist/transcription/ipa-symbols.d.ts +67 -0
- package/dist/transcription/ipa-symbols.d.ts.map +1 -0
- package/dist/transcription/ipa-symbols.js +135 -0
- package/dist/transcription/ipa-symbols.js.map +1 -0
- package/dist/transcription/ipa.d.ts +2 -10
- package/dist/transcription/ipa.d.ts.map +1 -1
- package/dist/transcription/ipa.js +2 -134
- package/dist/transcription/ipa.js.map +1 -1
- package/dist/transcription/wade-giles-index.d.ts +35 -0
- package/dist/transcription/wade-giles-index.d.ts.map +1 -0
- package/dist/transcription/wade-giles-index.js +110 -0
- package/dist/transcription/wade-giles-index.js.map +1 -0
- package/dist/transcription/wade-giles-parse.d.ts +36 -0
- package/dist/transcription/wade-giles-parse.d.ts.map +1 -0
- package/dist/transcription/wade-giles-parse.js +84 -0
- package/dist/transcription/wade-giles-parse.js.map +1 -0
- package/dist/transcription/wade-giles-spelling.d.ts +61 -0
- package/dist/transcription/wade-giles-spelling.d.ts.map +1 -0
- package/dist/transcription/wade-giles-spelling.js +107 -0
- package/dist/transcription/wade-giles-spelling.js.map +1 -0
- package/dist/transcription/wade-giles-syllable.d.ts +29 -0
- package/dist/transcription/wade-giles-syllable.d.ts.map +1 -0
- package/dist/transcription/wade-giles-syllable.js +90 -0
- package/dist/transcription/wade-giles-syllable.js.map +1 -0
- package/dist/transcription/wade-giles-tables.d.ts +80 -0
- package/dist/transcription/wade-giles-tables.d.ts.map +1 -0
- package/dist/transcription/wade-giles-tables.js +178 -0
- package/dist/transcription/wade-giles-tables.js.map +1 -0
- package/dist/transcription/wade-giles.d.ts +9 -60
- package/dist/transcription/wade-giles.d.ts.map +1 -1
- package/dist/transcription/wade-giles.js +6 -543
- package/dist/transcription/wade-giles.js.map +1 -1
- package/dist/transcription/yale-tables.d.ts +54 -0
- package/dist/transcription/yale-tables.d.ts.map +1 -0
- package/dist/transcription/yale-tables.js +125 -0
- package/dist/transcription/yale-tables.js.map +1 -0
- package/dist/transcription/yale.d.ts.map +1 -1
- package/dist/transcription/yale.js +1 -124
- package/dist/transcription/yale.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gwoyeu-spelling.js","sourceRoot":"","sources":["../../src/transcription/gwoyeu-spelling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How Gwoyeu Romatzyh spells each part of a syllable, as tables.
|
|
3
|
+
*
|
|
4
|
+
* Separated from the spelling rules that read them, so that this file is only
|
|
5
|
+
* ever a statement of what the system writes.
|
|
6
|
+
*/
|
|
7
|
+
import type { Final, Initial } from "../syllable/phonology.js";
|
|
8
|
+
import type { ContourTone } from "./gwoyeu-tonal-forms.js";
|
|
9
|
+
/**
|
|
10
|
+
* How each initial is spelled.
|
|
11
|
+
*
|
|
12
|
+
* GR uses the voiced letters for the unaspirated series, as pinyin does, so
|
|
13
|
+
* this half of the table is nearly pinyin's own. The three that differ are the
|
|
14
|
+
* alveolar affricates — `tz` and `ts` for pinyin z and c — and the palatals,
|
|
15
|
+
* which GR does not distinguish from the retroflexes at all: `j`, `ch` and `sh`
|
|
16
|
+
* stand for both series, and it is the following `i` that says which. That is
|
|
17
|
+
* why pinyin zhu, ju and jiu come out as `ju`, `jiu` and `jiou`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const INITIAL_SPELLINGS: Map<Initial, string>;
|
|
20
|
+
/**
|
|
21
|
+
* How each final is spelled in the basic form.
|
|
22
|
+
*
|
|
23
|
+
* Written out in full, as the finals table of *Spelling in Gwoyeu Romatzyh*
|
|
24
|
+
* has them: `iou` and `uei` rather than pinyin's contracted iu and ui, `iu` for
|
|
25
|
+
* ü, `au` for ao, and `el` for er — the `-r` being spoken for by the second
|
|
26
|
+
* tone.
|
|
27
|
+
*/
|
|
28
|
+
export declare const FINAL_SPELLINGS: Record<Final, string>;
|
|
29
|
+
/**
|
|
30
|
+
* The initials after which the empty rhyme is written `-y`.
|
|
31
|
+
*
|
|
32
|
+
* 詩 shī is `shy` and 斯 sī is `sy`, which is the same observation Yale makes
|
|
33
|
+
* with its `r` and `z`: the i of shi is a continuation of the initial rather
|
|
34
|
+
* than a vowel. GR spends a letter of its own on it, and that letter behaves
|
|
35
|
+
* as a vowel for every tonal rule below — `shy`, `shyr`, `shyy`, `shyh`.
|
|
36
|
+
*/
|
|
37
|
+
export declare const EMPTY_RHYME_INITIALS: Set<Initial>;
|
|
38
|
+
/**
|
|
39
|
+
* The letter 儿化 is written with.
|
|
40
|
+
*
|
|
41
|
+
* `-l` rather than `-r`, the second tone having spoken for the r.
|
|
42
|
+
*/
|
|
43
|
+
export declare const ERHUA_SUFFIX = "l";
|
|
44
|
+
/**
|
|
45
|
+
* The rime each final takes once it is rhotacised, before the `-l`.
|
|
46
|
+
*
|
|
47
|
+
* **GR transcribes 儿化 as it is said rather than as it is spelled**, which is
|
|
48
|
+
* what makes this a table rather than a suffix. 玩儿 wánr is `wal` and not
|
|
49
|
+
* `wanl`, because the -n is not there to hear; 事儿 shìr is `shell`, the empty
|
|
50
|
+
* rhyme having gone entirely; 今儿 jīnr and 鸡儿 jīr are both `jiel`, which is
|
|
51
|
+
* the collapse *Spelling in Gwoyeu Romatzyh* names.
|
|
52
|
+
*
|
|
53
|
+
* The rules it gives, applied here as stated:
|
|
54
|
+
*
|
|
55
|
+
* - `-y`, the empty rhyme, becomes `e`
|
|
56
|
+
* - `i` and `in` become `ie`; `iu` (ü) and `iun` (ün) become `iue`
|
|
57
|
+
* - `ing` becomes `ieng`
|
|
58
|
+
* - every other `-n` disappears without trace
|
|
59
|
+
* - the asyllabic `-i` of `ai`, `uai`, `iai` and `uei` disappears
|
|
60
|
+
*
|
|
61
|
+
* So `al` covers a, an and ai; `el` covers en, ei and the empty rhyme; `uel`
|
|
62
|
+
* covers uen and uei. The tonal rules then apply to the result, which is where
|
|
63
|
+
* `dial` becomes 一點兒's `deal`.
|
|
64
|
+
*/
|
|
65
|
+
export declare const RHOTACISED_RIMES: Record<Final, string>;
|
|
66
|
+
/**
|
|
67
|
+
* The rhotacised rime of the empty rhyme, which `-y` becomes.
|
|
68
|
+
*/
|
|
69
|
+
export declare const RHOTACISED_EMPTY_RHYME = "e";
|
|
70
|
+
/**
|
|
71
|
+
* The last tone in which a final writes an apostrophe before the `-l`.
|
|
72
|
+
*
|
|
73
|
+
* Three finals need one, because the fusion above has made them collide with a
|
|
74
|
+
* rime that was already there. `e` rhotacised is `e'l`, `er'l` and `ee'l`, to
|
|
75
|
+
* keep it apart from the `el`, `erl` and `eel` that en, ei and the empty rhyme
|
|
76
|
+
* give; `ie` and `iue` take one in the first two tones only, since in the third
|
|
77
|
+
* and fourth they merge with i and iu anyway. The fourth tone of `e` needs no
|
|
78
|
+
* apostrophe either, `ehl` being distinct from `ell` on its own.
|
|
79
|
+
*/
|
|
80
|
+
export declare const APOSTROPHE_TONES: Map<"a" | "ai" | "an" | "ang" | "ao" | "e" | "ei" | "en" | "eng" | "er" | "i" | "ia" | "ian" | "iang" | "iao" | "ie" | "in" | "ing" | "io" | "iong" | "iou" | "m" | "n" | "ng" | "o" | "ong" | "ou" | "u" | "ua" | "uai" | "uan" | "uang" | "uei" | "uen" | "ueng" | "uo" | "ê" | "ü" | "üan" | "üe" | "ün", ContourTone>;
|
|
81
|
+
/**
|
|
82
|
+
* The apostrophe those three finals take.
|
|
83
|
+
*/
|
|
84
|
+
export declare const APOSTROPHE = "'";
|
|
85
|
+
/**
|
|
86
|
+
* The dot written in front of a neutral-tone syllable.
|
|
87
|
+
*
|
|
88
|
+
* A full stop, which is how GR writes it in print. Chao's own practice is to
|
|
89
|
+
* use it on a word's first appearance rather than throughout; this module
|
|
90
|
+
* always writes it, because it is the only thing in GR that can say "neutral"
|
|
91
|
+
* rather than leaving it to be inferred.
|
|
92
|
+
*/
|
|
93
|
+
//# sourceMappingURL=gwoyeu-tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gwoyeu-tables.d.ts","sourceRoot":"","sources":["../../src/transcription/gwoyeu-tables.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,sBAsB5B,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CA0CjD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,cAQ/B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CA4ClD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,2TAI3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B;;;;;;;GAOG"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How each initial is spelled.
|
|
3
|
+
*
|
|
4
|
+
* GR uses the voiced letters for the unaspirated series, as pinyin does, so
|
|
5
|
+
* this half of the table is nearly pinyin's own. The three that differ are the
|
|
6
|
+
* alveolar affricates — `tz` and `ts` for pinyin z and c — and the palatals,
|
|
7
|
+
* which GR does not distinguish from the retroflexes at all: `j`, `ch` and `sh`
|
|
8
|
+
* stand for both series, and it is the following `i` that says which. That is
|
|
9
|
+
* why pinyin zhu, ju and jiu come out as `ju`, `jiu` and `jiou`.
|
|
10
|
+
*/
|
|
11
|
+
export const INITIAL_SPELLINGS = new Map([
|
|
12
|
+
["b", "b"],
|
|
13
|
+
["p", "p"],
|
|
14
|
+
["m", "m"],
|
|
15
|
+
["f", "f"],
|
|
16
|
+
["d", "d"],
|
|
17
|
+
["t", "t"],
|
|
18
|
+
["n", "n"],
|
|
19
|
+
["l", "l"],
|
|
20
|
+
["g", "g"],
|
|
21
|
+
["k", "k"],
|
|
22
|
+
["h", "h"],
|
|
23
|
+
["j", "j"],
|
|
24
|
+
["q", "ch"],
|
|
25
|
+
["x", "sh"],
|
|
26
|
+
["zh", "j"],
|
|
27
|
+
["ch", "ch"],
|
|
28
|
+
["sh", "sh"],
|
|
29
|
+
["r", "r"],
|
|
30
|
+
["z", "tz"],
|
|
31
|
+
["c", "ts"],
|
|
32
|
+
["s", "s"],
|
|
33
|
+
]);
|
|
34
|
+
/**
|
|
35
|
+
* How each final is spelled in the basic form.
|
|
36
|
+
*
|
|
37
|
+
* Written out in full, as the finals table of *Spelling in Gwoyeu Romatzyh*
|
|
38
|
+
* has them: `iou` and `uei` rather than pinyin's contracted iu and ui, `iu` for
|
|
39
|
+
* ü, `au` for ao, and `el` for er — the `-r` being spoken for by the second
|
|
40
|
+
* tone.
|
|
41
|
+
*/
|
|
42
|
+
export const FINAL_SPELLINGS = {
|
|
43
|
+
a: "a",
|
|
44
|
+
o: "o",
|
|
45
|
+
e: "e",
|
|
46
|
+
ê: "è",
|
|
47
|
+
er: "el",
|
|
48
|
+
ai: "ai",
|
|
49
|
+
ei: "ei",
|
|
50
|
+
ao: "au",
|
|
51
|
+
ou: "ou",
|
|
52
|
+
an: "an",
|
|
53
|
+
en: "en",
|
|
54
|
+
ang: "ang",
|
|
55
|
+
eng: "eng",
|
|
56
|
+
ong: "ong",
|
|
57
|
+
i: "i",
|
|
58
|
+
ia: "ia",
|
|
59
|
+
io: "io",
|
|
60
|
+
ie: "ie",
|
|
61
|
+
iao: "iau",
|
|
62
|
+
iou: "iou",
|
|
63
|
+
ian: "ian",
|
|
64
|
+
in: "in",
|
|
65
|
+
iang: "iang",
|
|
66
|
+
ing: "ing",
|
|
67
|
+
iong: "iong",
|
|
68
|
+
u: "u",
|
|
69
|
+
ua: "ua",
|
|
70
|
+
uo: "uo",
|
|
71
|
+
uai: "uai",
|
|
72
|
+
uei: "uei",
|
|
73
|
+
uan: "uan",
|
|
74
|
+
uen: "uen",
|
|
75
|
+
uang: "uang",
|
|
76
|
+
ueng: "ueng",
|
|
77
|
+
ü: "iu",
|
|
78
|
+
üe: "iue",
|
|
79
|
+
üan: "iuan",
|
|
80
|
+
ün: "iun",
|
|
81
|
+
m: "m",
|
|
82
|
+
n: "n",
|
|
83
|
+
ng: "ng",
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* The initials after which the empty rhyme is written `-y`.
|
|
87
|
+
*
|
|
88
|
+
* 詩 shī is `shy` and 斯 sī is `sy`, which is the same observation Yale makes
|
|
89
|
+
* with its `r` and `z`: the i of shi is a continuation of the initial rather
|
|
90
|
+
* than a vowel. GR spends a letter of its own on it, and that letter behaves
|
|
91
|
+
* as a vowel for every tonal rule below — `shy`, `shyr`, `shyy`, `shyh`.
|
|
92
|
+
*/
|
|
93
|
+
export const EMPTY_RHYME_INITIALS = new Set([
|
|
94
|
+
"zh",
|
|
95
|
+
"ch",
|
|
96
|
+
"sh",
|
|
97
|
+
"r",
|
|
98
|
+
"z",
|
|
99
|
+
"c",
|
|
100
|
+
"s",
|
|
101
|
+
]);
|
|
102
|
+
/**
|
|
103
|
+
* The letter 儿化 is written with.
|
|
104
|
+
*
|
|
105
|
+
* `-l` rather than `-r`, the second tone having spoken for the r.
|
|
106
|
+
*/
|
|
107
|
+
export const ERHUA_SUFFIX = "l";
|
|
108
|
+
/**
|
|
109
|
+
* The rime each final takes once it is rhotacised, before the `-l`.
|
|
110
|
+
*
|
|
111
|
+
* **GR transcribes 儿化 as it is said rather than as it is spelled**, which is
|
|
112
|
+
* what makes this a table rather than a suffix. 玩儿 wánr is `wal` and not
|
|
113
|
+
* `wanl`, because the -n is not there to hear; 事儿 shìr is `shell`, the empty
|
|
114
|
+
* rhyme having gone entirely; 今儿 jīnr and 鸡儿 jīr are both `jiel`, which is
|
|
115
|
+
* the collapse *Spelling in Gwoyeu Romatzyh* names.
|
|
116
|
+
*
|
|
117
|
+
* The rules it gives, applied here as stated:
|
|
118
|
+
*
|
|
119
|
+
* - `-y`, the empty rhyme, becomes `e`
|
|
120
|
+
* - `i` and `in` become `ie`; `iu` (ü) and `iun` (ün) become `iue`
|
|
121
|
+
* - `ing` becomes `ieng`
|
|
122
|
+
* - every other `-n` disappears without trace
|
|
123
|
+
* - the asyllabic `-i` of `ai`, `uai`, `iai` and `uei` disappears
|
|
124
|
+
*
|
|
125
|
+
* So `al` covers a, an and ai; `el` covers en, ei and the empty rhyme; `uel`
|
|
126
|
+
* covers uen and uei. The tonal rules then apply to the result, which is where
|
|
127
|
+
* `dial` becomes 一點兒's `deal`.
|
|
128
|
+
*/
|
|
129
|
+
export const RHOTACISED_RIMES = {
|
|
130
|
+
a: "a",
|
|
131
|
+
o: "o",
|
|
132
|
+
e: "e",
|
|
133
|
+
ê: "è",
|
|
134
|
+
// 兒 is already the rhotic syllable; nothing else attaches to it.
|
|
135
|
+
er: "el",
|
|
136
|
+
ai: "a",
|
|
137
|
+
ei: "e",
|
|
138
|
+
ao: "au",
|
|
139
|
+
ou: "ou",
|
|
140
|
+
an: "a",
|
|
141
|
+
en: "e",
|
|
142
|
+
ang: "ang",
|
|
143
|
+
eng: "eng",
|
|
144
|
+
ong: "ong",
|
|
145
|
+
i: "ie",
|
|
146
|
+
ia: "ia",
|
|
147
|
+
io: "io",
|
|
148
|
+
ie: "ie",
|
|
149
|
+
iao: "iau",
|
|
150
|
+
iou: "iou",
|
|
151
|
+
ian: "ia",
|
|
152
|
+
in: "ie",
|
|
153
|
+
iang: "iang",
|
|
154
|
+
ing: "ieng",
|
|
155
|
+
iong: "iong",
|
|
156
|
+
u: "u",
|
|
157
|
+
ua: "ua",
|
|
158
|
+
uo: "uo",
|
|
159
|
+
uai: "ua",
|
|
160
|
+
uei: "ue",
|
|
161
|
+
uan: "ua",
|
|
162
|
+
uen: "ue",
|
|
163
|
+
uang: "uang",
|
|
164
|
+
ueng: "ueng",
|
|
165
|
+
ü: "iue",
|
|
166
|
+
üe: "iue",
|
|
167
|
+
üan: "iua",
|
|
168
|
+
ün: "iue",
|
|
169
|
+
// The syllabic nasals, which GR does not spell at all: see writeGwoyeu.
|
|
170
|
+
m: "m",
|
|
171
|
+
n: "n",
|
|
172
|
+
ng: "ng",
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* The rhotacised rime of the empty rhyme, which `-y` becomes.
|
|
176
|
+
*/
|
|
177
|
+
export const RHOTACISED_EMPTY_RHYME = "e";
|
|
178
|
+
/**
|
|
179
|
+
* The last tone in which a final writes an apostrophe before the `-l`.
|
|
180
|
+
*
|
|
181
|
+
* Three finals need one, because the fusion above has made them collide with a
|
|
182
|
+
* rime that was already there. `e` rhotacised is `e'l`, `er'l` and `ee'l`, to
|
|
183
|
+
* keep it apart from the `el`, `erl` and `eel` that en, ei and the empty rhyme
|
|
184
|
+
* give; `ie` and `iue` take one in the first two tones only, since in the third
|
|
185
|
+
* and fourth they merge with i and iu anyway. The fourth tone of `e` needs no
|
|
186
|
+
* apostrophe either, `ehl` being distinct from `ell` on its own.
|
|
187
|
+
*/
|
|
188
|
+
export const APOSTROPHE_TONES = new Map([
|
|
189
|
+
["e", 3],
|
|
190
|
+
["ie", 2],
|
|
191
|
+
["üe", 2],
|
|
192
|
+
]);
|
|
193
|
+
/**
|
|
194
|
+
* The apostrophe those three finals take.
|
|
195
|
+
*/
|
|
196
|
+
export const APOSTROPHE = "'";
|
|
197
|
+
/**
|
|
198
|
+
* The dot written in front of a neutral-tone syllable.
|
|
199
|
+
*
|
|
200
|
+
* A full stop, which is how GR writes it in print. Chao's own practice is to
|
|
201
|
+
* use it on a word's first appearance rather than throughout; this module
|
|
202
|
+
* always writes it, because it is the only thing in GR that can say "neutral"
|
|
203
|
+
* rather than leaving it to be inferred.
|
|
204
|
+
*/
|
|
205
|
+
//# sourceMappingURL=gwoyeu-tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gwoyeu-tables.js","sourceRoot":"","sources":["../../src/transcription/gwoyeu-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tonal rules: how Gwoyeu Romatzyh spells a tone into the syllable itself.
|
|
3
|
+
*
|
|
4
|
+
* This is what makes GR the system it is, and unlike the spelling tables it is
|
|
5
|
+
* all string work — given a basic form and a tone, produce the form carrying
|
|
6
|
+
* it. `gwoyeu.ts` builds the basic form and hands it here.
|
|
7
|
+
*/
|
|
8
|
+
import type { Initial } from "../syllable/phonology.js";
|
|
9
|
+
/**
|
|
10
|
+
* A tone that GR spells, which is the four contour tones.
|
|
11
|
+
*
|
|
12
|
+
* The neutral tone is the dot and has no spelling of its own, and an unwritten
|
|
13
|
+
* tone has nothing to write.
|
|
14
|
+
*/
|
|
15
|
+
export type ContourTone = 1 | 2 | 3 | 4;
|
|
16
|
+
/**
|
|
17
|
+
* Tone 4: change or double the last letter, or add `-h`.
|
|
18
|
+
*
|
|
19
|
+
* The `⇏iw` clause is why 去 qù is `chiuh` and not `chiw`: the u of `iu` is the
|
|
20
|
+
* ü rather than the second half of a diphthong, and turning it into a w would
|
|
21
|
+
* say the wrong thing about the vowel.
|
|
22
|
+
*/
|
|
23
|
+
export declare function fourthTone(form: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Put the y- or w- on a syllable that has no initial, in tones 3 and 4.
|
|
26
|
+
*
|
|
27
|
+
* **This is the one place where the published rules needed amending, and the
|
|
28
|
+
* amendment is a correction of one word.** They say that a basic form starting
|
|
29
|
+
* i- or u- has that letter *replaced* by y- or w- (tone 4), or changed to e- or
|
|
30
|
+
* o- with a y- or w- added (tone 3). Applied literally that deletes a vowel the
|
|
31
|
+
* attested spellings keep: 一 yī's basic form is `i`, and tone 4 comes out `yh`
|
|
32
|
+
* where the source has `yih`. Nine cells of the syllabary fail that way, all of
|
|
33
|
+
* them a rime that is bare or closed by a consonant — `yii`, `yih`, `wuu`,
|
|
34
|
+
* `wuh`, `yiin`, `yinn`, `yiing`, `yinq`, `yuh`.
|
|
35
|
+
*
|
|
36
|
+
* The rime table of *Spelling in Gwoyeu Romatzyh* says what actually happens,
|
|
37
|
+
* and it is one rule rather than two: **the letter replaced is a medial**, so
|
|
38
|
+
* it goes only when a different vowel follows it. `iuh` has a u after the i and
|
|
39
|
+
* becomes `yuh`; `ih` has an h and becomes `yih`; `ii` has the same vowel
|
|
40
|
+
* doubled, which is not a following vowel at all, and becomes `yii`. Tone 3
|
|
41
|
+
* needs no separate clause once that is said, because its own swap has already
|
|
42
|
+
* eaten the medial wherever there was one.
|
|
43
|
+
*/
|
|
44
|
+
export declare function zeroInitial(form: string, basic: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Apply the tonal rules to a basic form, which is the whole of them.
|
|
47
|
+
*/
|
|
48
|
+
export declare function tonalForm(basic: string, initial: Initial, tone: ContourTone): string;
|
|
49
|
+
//# sourceMappingURL=gwoyeu-tonal-forms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gwoyeu-tonal-forms.d.ts","sourceRoot":"","sources":["../../src/transcription/gwoyeu-tonal-forms.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAyBxC;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgB/C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,GAChB,MAAM,CASR"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { firstTone, secondTone, swapped } from "./gwoyeu-first-second.js";
|
|
2
|
+
import { isVowel, MAIN_VOWELS, vowelSpan } from "./gwoyeu-vowels.js";
|
|
3
|
+
/**
|
|
4
|
+
* Tone 3, where the swap does not apply: double the main vowel.
|
|
5
|
+
*
|
|
6
|
+
* The main vowel is the one a pinyin tone mark would sit on — a, then o or e,
|
|
7
|
+
* then the last vowel there is — so 請 qǐng is `chiing` and 給 gěi is `geei`.
|
|
8
|
+
*/
|
|
9
|
+
function doubled(form) {
|
|
10
|
+
const [start, end] = vowelSpan(form);
|
|
11
|
+
const rime = form.slice(start, end + 1);
|
|
12
|
+
const main = MAIN_VOWELS.map((vowel) => rime.indexOf(vowel)).find((at) => at !== -1);
|
|
13
|
+
const at = start + (main ?? rime.length - 1);
|
|
14
|
+
return `${form.slice(0, at + 1)}${form.slice(at, at + 1)}${form.slice(at + 1)}`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Tone 3: i/u to e/o beside a vowel, or the main vowel doubled.
|
|
18
|
+
*/
|
|
19
|
+
function thirdTone(form) {
|
|
20
|
+
return swapped(form) ?? doubled(form);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Tone 4: change or double the last letter, or add `-h`.
|
|
24
|
+
*
|
|
25
|
+
* The `⇏iw` clause is why 去 qù is `chiuh` and not `chiw`: the u of `iu` is the
|
|
26
|
+
* ü rather than the second half of a diphthong, and turning it into a w would
|
|
27
|
+
* say the wrong thing about the vowel.
|
|
28
|
+
*/
|
|
29
|
+
export function fourthTone(form) {
|
|
30
|
+
const last = form.slice(-1);
|
|
31
|
+
const before = form.slice(-2, -1);
|
|
32
|
+
if (last === "i" && isVowel(before)) {
|
|
33
|
+
return `${form.slice(0, -1)}y`;
|
|
34
|
+
}
|
|
35
|
+
if (last === "u" && isVowel(before) && before !== "i") {
|
|
36
|
+
return `${form.slice(0, -1)}w`;
|
|
37
|
+
}
|
|
38
|
+
if (form.endsWith("ng")) {
|
|
39
|
+
return `${form.slice(0, -2)}nq`;
|
|
40
|
+
}
|
|
41
|
+
if (last === "n" || last === "l") {
|
|
42
|
+
return `${form}${last}`;
|
|
43
|
+
}
|
|
44
|
+
return `${form}h`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Put the y- or w- on a syllable that has no initial, in tones 3 and 4.
|
|
48
|
+
*
|
|
49
|
+
* **This is the one place where the published rules needed amending, and the
|
|
50
|
+
* amendment is a correction of one word.** They say that a basic form starting
|
|
51
|
+
* i- or u- has that letter *replaced* by y- or w- (tone 4), or changed to e- or
|
|
52
|
+
* o- with a y- or w- added (tone 3). Applied literally that deletes a vowel the
|
|
53
|
+
* attested spellings keep: 一 yī's basic form is `i`, and tone 4 comes out `yh`
|
|
54
|
+
* where the source has `yih`. Nine cells of the syllabary fail that way, all of
|
|
55
|
+
* them a rime that is bare or closed by a consonant — `yii`, `yih`, `wuu`,
|
|
56
|
+
* `wuh`, `yiin`, `yinn`, `yiing`, `yinq`, `yuh`.
|
|
57
|
+
*
|
|
58
|
+
* The rime table of *Spelling in Gwoyeu Romatzyh* says what actually happens,
|
|
59
|
+
* and it is one rule rather than two: **the letter replaced is a medial**, so
|
|
60
|
+
* it goes only when a different vowel follows it. `iuh` has a u after the i and
|
|
61
|
+
* becomes `yuh`; `ih` has an h and becomes `yih`; `ii` has the same vowel
|
|
62
|
+
* doubled, which is not a following vowel at all, and becomes `yii`. Tone 3
|
|
63
|
+
* needs no separate clause once that is said, because its own swap has already
|
|
64
|
+
* eaten the medial wherever there was one.
|
|
65
|
+
*/
|
|
66
|
+
export function zeroInitial(form, basic) {
|
|
67
|
+
const onset = basic.slice(0, 1);
|
|
68
|
+
if (onset !== "i" && onset !== "u") {
|
|
69
|
+
return form;
|
|
70
|
+
}
|
|
71
|
+
const glide = onset === "i" ? "y" : "w";
|
|
72
|
+
const next = form[1];
|
|
73
|
+
const isMedial = form.slice(0, 1) === onset && isVowel(next) && next !== onset;
|
|
74
|
+
return `${glide}${isMedial ? form.slice(1) : form}`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Apply the tonal rules to a basic form, which is the whole of them.
|
|
78
|
+
*/
|
|
79
|
+
export function tonalForm(basic, initial, tone) {
|
|
80
|
+
if (tone === 1) {
|
|
81
|
+
return firstTone(basic, initial);
|
|
82
|
+
}
|
|
83
|
+
if (tone === 2) {
|
|
84
|
+
return secondTone(basic, initial);
|
|
85
|
+
}
|
|
86
|
+
const changed = tone === 3 ? thirdTone(basic) : fourthTone(basic);
|
|
87
|
+
return initial === "" ? zeroInitial(changed, basic) : changed;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=gwoyeu-tonal-forms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gwoyeu-tonal-forms.js","sourceRoot":"","sources":["../../src/transcription/gwoyeu-tonal-forms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finding the vowels a tonal rule works on.
|
|
3
|
+
*
|
|
4
|
+
* Every GR tone rule reaches for the same three things — where the rime's
|
|
5
|
+
* vowels start and end, whether a letter counts as a vowel, and which vowel
|
|
6
|
+
* the doubling picks — so they are settled once here.
|
|
7
|
+
*/
|
|
8
|
+
import type { Initial } from "../syllable/phonology.js";
|
|
9
|
+
/**
|
|
10
|
+
* The sonorant initials, which swap what the first two tones do.
|
|
11
|
+
*
|
|
12
|
+
* A syllable beginning l-, m-, n- or r- takes an `-h-` as its second letter in
|
|
13
|
+
* the first tone and is left alone in the second: 媽 mā is `mha` and 麻 má is
|
|
14
|
+
* `ma`. The reason is frequency rather than phonology — these initials carry
|
|
15
|
+
* far more second tones than first ones — and it is the one place where the
|
|
16
|
+
* basic form is not the first tone.
|
|
17
|
+
*/
|
|
18
|
+
export declare const SONORANT_INITIALS: Set<Initial>;
|
|
19
|
+
/**
|
|
20
|
+
* The letters that count as a vowel for the tonal rules.
|
|
21
|
+
*
|
|
22
|
+
* `y` is the empty rhyme and `è` is pinyin's ê; both are the whole of the rime
|
|
23
|
+
* they appear in, so both take the doubling and the `-r` exactly as a vowel
|
|
24
|
+
* does.
|
|
25
|
+
*/
|
|
26
|
+
export declare const VOWELS = "aeiouy\u00E8";
|
|
27
|
+
/**
|
|
28
|
+
* The vowels a tone mark can sit on in pinyin, in the order the rule tries
|
|
29
|
+
* them, which is what "the main vowel" means for the third tone's doubling.
|
|
30
|
+
*/
|
|
31
|
+
export declare const MAIN_VOWELS: readonly ["a", "o", "e"];
|
|
32
|
+
/**
|
|
33
|
+
* Whether a letter is one the tonal rules treat as a vowel.
|
|
34
|
+
*
|
|
35
|
+
* Spelled out rather than written `VOWELS.includes(letter)` because
|
|
36
|
+
* `"aeiouyè".includes("")` is true, and the letter before the first one of a
|
|
37
|
+
* spelling is exactly that: the empty string. A rule asking "is the letter
|
|
38
|
+
* before this one a vowel" would silently say yes at the start of every
|
|
39
|
+
* syllable.
|
|
40
|
+
*/
|
|
41
|
+
export declare function isVowel(letter: string | undefined): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Where the rime's vowels start and end.
|
|
44
|
+
*
|
|
45
|
+
* The five syllables with no vowel letter at all — the syllabic nasals 呣, 唔,
|
|
46
|
+
* 嗯 and their aspirated pair — fall back to the last letter, so that the rules
|
|
47
|
+
* asking for "the vowel" have something to work on. GR has no attested
|
|
48
|
+
* spelling for any of them; see `docs/romanization/`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function vowelSpan(form: string): readonly [number, number];
|
|
51
|
+
//# sourceMappingURL=gwoyeu-vowels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gwoyeu-vowels.d.ts","sourceRoot":"","sources":["../../src/transcription/gwoyeu-vowels.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,cAAyC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,iBAAY,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,WAAW,YAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAajE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The sonorant initials, which swap what the first two tones do.
|
|
3
|
+
*
|
|
4
|
+
* A syllable beginning l-, m-, n- or r- takes an `-h-` as its second letter in
|
|
5
|
+
* the first tone and is left alone in the second: 媽 mā is `mha` and 麻 má is
|
|
6
|
+
* `ma`. The reason is frequency rather than phonology — these initials carry
|
|
7
|
+
* far more second tones than first ones — and it is the one place where the
|
|
8
|
+
* basic form is not the first tone.
|
|
9
|
+
*/
|
|
10
|
+
export const SONORANT_INITIALS = new Set(["l", "m", "n", "r"]);
|
|
11
|
+
/**
|
|
12
|
+
* The letters that count as a vowel for the tonal rules.
|
|
13
|
+
*
|
|
14
|
+
* `y` is the empty rhyme and `è` is pinyin's ê; both are the whole of the rime
|
|
15
|
+
* they appear in, so both take the doubling and the `-r` exactly as a vowel
|
|
16
|
+
* does.
|
|
17
|
+
*/
|
|
18
|
+
export const VOWELS = "aeiouyè";
|
|
19
|
+
/**
|
|
20
|
+
* The vowels a tone mark can sit on in pinyin, in the order the rule tries
|
|
21
|
+
* them, which is what "the main vowel" means for the third tone's doubling.
|
|
22
|
+
*/
|
|
23
|
+
export const MAIN_VOWELS = ["a", "o", "e"];
|
|
24
|
+
/**
|
|
25
|
+
* Whether a letter is one the tonal rules treat as a vowel.
|
|
26
|
+
*
|
|
27
|
+
* Spelled out rather than written `VOWELS.includes(letter)` because
|
|
28
|
+
* `"aeiouyè".includes("")` is true, and the letter before the first one of a
|
|
29
|
+
* spelling is exactly that: the empty string. A rule asking "is the letter
|
|
30
|
+
* before this one a vowel" would silently say yes at the start of every
|
|
31
|
+
* syllable.
|
|
32
|
+
*/
|
|
33
|
+
export function isVowel(letter) {
|
|
34
|
+
return letter !== undefined && letter !== "" && VOWELS.includes(letter);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Where the rime's vowels start and end.
|
|
38
|
+
*
|
|
39
|
+
* The five syllables with no vowel letter at all — the syllabic nasals 呣, 唔,
|
|
40
|
+
* 嗯 and their aspirated pair — fall back to the last letter, so that the rules
|
|
41
|
+
* asking for "the vowel" have something to work on. GR has no attested
|
|
42
|
+
* spelling for any of them; see `docs/romanization/`.
|
|
43
|
+
*/
|
|
44
|
+
export function vowelSpan(form) {
|
|
45
|
+
let start = 0;
|
|
46
|
+
while (start < form.length && !isVowel(form[start])) {
|
|
47
|
+
start += 1;
|
|
48
|
+
}
|
|
49
|
+
if (start === form.length) {
|
|
50
|
+
return [form.length - 1, form.length - 1];
|
|
51
|
+
}
|
|
52
|
+
let end = start;
|
|
53
|
+
while (isVowel(form[end + 1])) {
|
|
54
|
+
end += 1;
|
|
55
|
+
}
|
|
56
|
+
return [start, end];
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=gwoyeu-vowels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gwoyeu-vowels.js","sourceRoot":"","sources":["../../src/transcription/gwoyeu-vowels.ts"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,MAA0B;IAChD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACpD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -1,30 +1,5 @@
|
|
|
1
1
|
import { type Syllable } from "../syllable/syllable.js";
|
|
2
|
-
|
|
3
|
-
* Write a syllable in Gwoyeu Romatzyh: 就 jiù becomes `jiow`.
|
|
4
|
-
*
|
|
5
|
-
* An unwritten tone is written as the first-tone form, because GR has no other
|
|
6
|
-
* form to write — which means it reads back as a first tone, exactly as
|
|
7
|
-
* bopomofo's unmarked syllable does.
|
|
8
|
-
*
|
|
9
|
-
* The neutral tone takes the dot in front, and behind it goes the syllable's
|
|
10
|
-
* original tonal spelling where {@link Syllable.originalTone} says what that
|
|
11
|
-
* was: 没有 méiyou is `mei.yeou`. Where it does not, the basic form goes there
|
|
12
|
-
* instead — which is what GR itself writes for a syllable that is neutral in
|
|
13
|
-
* its own right, 什么 shénme being `shern.me`. The basic form is not the first
|
|
14
|
-
* tone for a sonorant initial, and writing `.mhe` would say the 么 was one.
|
|
15
|
-
*/
|
|
16
|
-
export declare function writeGwoyeu(syllable: Syllable): string;
|
|
17
|
-
/**
|
|
18
|
-
* Write a word in Gwoyeu Romatzyh, one syllable after another.
|
|
19
|
-
*
|
|
20
|
-
* Solid, as GR writes a word: 北京 is `Beeijing`, which is the convention
|
|
21
|
-
* pinyin inherited. GR uses an apostrophe where the join is ambiguous — its own
|
|
22
|
-
* name for pinyin, `Pin'in`, is the standard example — and that is not written
|
|
23
|
-
* here, for the same reason `readGwoyeu` takes one syllable at a time: knowing
|
|
24
|
-
* where the boundary is ambiguous means being able to split the word, and
|
|
25
|
-
* nothing here splits a GR word.
|
|
26
|
-
*/
|
|
27
|
-
export declare function writeGwoyeuWord(syllables: readonly Syllable[]): string;
|
|
2
|
+
export { writeGwoyeu, writeGwoyeuWord } from "./gwoyeu-spelling.js";
|
|
28
3
|
/**
|
|
29
4
|
* Read a Gwoyeu Romatzyh syllable: `jiow` becomes 就 jiù.
|
|
30
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gwoyeu.d.ts","sourceRoot":"","sources":["../../src/transcription/gwoyeu.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gwoyeu.d.ts","sourceRoot":"","sources":["../../src/transcription/gwoyeu.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAYtE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAmDpE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAe5D"}
|