@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.
39 lines (38 loc) • 1.98 kB
TypeScript
/**
* Whether to shortcut in a formative, and which slots to do so within.
*
* - `false` indicates that no shortcuts should be used.
* - `true` indicates that as many shortcuts should be taken as possible.
* - `"IV/VI"` indicates that a Slot IV/VI shortcut should be used, if possible.
* - `"VII"` indicates that a Slot VII shortcut should be used, if possible.
* - `"VIII"` indicates that a Slot VIII shortcut should be used, if possible.
*
* What are these shortcuts?
*
* A Slot IV/VI shortcut eliminates Slot IV (Vr) and Slot VI (Ca) and merges
* their information into slots I and II. This can only be done if the formative
* has default STA Function, BSC Specification, and EXS Context, and if the Ca
* form is either [default], PRX, G, N, A, RPV, G+RPV, or PRX+RPV.
*
* A Slot VII shortcut moves a final NEG/4, DCD/4, or DCD/5 affix in Slot VII to
* Slot II. This can only be done if the final affix of Slot VII is Type-1
* NEG/4, Type-1 DCD/4, or Type-1 DCD/5.
*
* A Slot VIII shortcut replaces the Slot VI Ca form with a Cn Mood or
* Case-Scope marker in Slot VIII. This can only be done when the formative's Vn
* form is default MNO Valence and when its Cn form is not default FAC/CCN.
*
* Note that while Slot VII and VIII shortcuts can be applied simultaneously, a
* Slot IV/VI shortcut is incompatiable with both of them.
*
* Also note that you do not have to calculate shortcuts in advance (e.g. only
* passing "IV/VI" when you're certain that the formative can take a Slot IV/VI
* a+Ca shortcut). Shortcuts are only taken when they're possible.
*
* If `true` is passed and multiple types of shortcuts are possible, Slot VIII
* shortcuts are prioritized over Slot VII shortcuts, which in turn are
* prioritized over Slot IV/VI shortcuts.
*/
export type ShortcutType = boolean | "IV/VI" | "VII" | "VIII" | "VII+VIII";
/** An array containing all shortcut types. */
export declare const ALL_SHORTCUT_TYPES: readonly ShortcutType[];