UNPKG

@zsnout/ithkuil

Version:

A set of tools which can generate and parse romanized Ithkuil text and which can generate Ithkuil script from text and JSON data.

27 lines (26 loc) 1.01 kB
import { ALL_ASPECTS, ALL_EFFECTS, ALL_LEVELS, ALL_PHASES, ALL_VALENCES, ASPECT_TO_NAME_MAP, EFFECT_TO_NAME_MAP, has, LEVEL_TO_NAME_MAP, PHASE_TO_NAME_MAP, VALENCE_TO_NAME_MAP, } from "../generate/index.js"; import { asGloss, GlossString } from "./glossable.js"; /** * Glosses a Vn form. * * @param vn The Vn form to be glossed. * @returns A `GlossString` representing the Vn form. */ export function glossVn(vn) { if (has(ALL_VALENCES, vn)) { return new GlossString(vn, asGloss(VALENCE_TO_NAME_MAP[vn])); } if (has(ALL_PHASES, vn)) { return new GlossString(vn, asGloss(PHASE_TO_NAME_MAP[vn])); } if (has(ALL_EFFECTS, vn)) { return new GlossString(vn, asGloss(EFFECT_TO_NAME_MAP[vn])); } if (has(ALL_LEVELS, vn)) { return new GlossString(vn, asGloss(LEVEL_TO_NAME_MAP[vn])); } if (has(ALL_ASPECTS, vn)) { return new GlossString(vn, asGloss(ASPECT_TO_NAME_MAP[vn])); } throw new Error("Invalid Vn form: '" + vn + "'."); }