shenikan/types.cue
2024-09-16 22:10:11 -04:00

65 lines
1.5 KiB
CUE

package shenikan
_vowels: ["i", "e", "a", "o", "u"]
#VowelAttribute: "outer" | "slashed" | "inner" | "both"
#ClusterAttribute: "left" | "center" | "right" | "top" | "middle" | "bottom" |
"tall" | "wide" | "both"
#PunctuationAttribute: "left" | "right"
#NumericAttribute: "circle" | "dash" | "vee" | "hump" | "dot"
#SyllableAttribute: #VowelAttribute | #ClusterAttribute
#Glyph: #VowelGlyph | #ClusterGlyph | #PunctuationGlyph | #NumericGlyph |
#SyllableGlyph
#VowelGlyph: {kind: "vowel", ortho: string, attrs: [...#VowelAttribute]}
#ClusterGlyph: {kind: "cluster", ortho: string, attrs: [...#ClusterAttribute]}
#PunctuationGlyph: {kind: "punctuation", ortho: string, attrs: [...#PunctuationAttribute]}
#NumericGlyph: {kind: "numeric", ortho: string, attrs: [...#NumericAttribute]}
#SyllableGlyph: {kind: "syllable", ortho: string, attrs: [...#SyllableAttribute]}
#Replacement: {
old: string
new: string
}
#Dialect: {
name: string
replacements: [...#Replacement]
}
#PartOfSpeech: "noun" | "pronoun" | "verb" | "adjective" | "adverb" | "syntax"
#Definition: {
pos: #PartOfSpeech
short: string
long?: string
}
#Word: {
spelling: string
definitions: [...#Definition]
}
#Penta: {
name?: string
extremes?: {
i?: string
u?: string
}
}
#Icosa: {
name?: string
extremes?: {
ix?: string
ux?: string
xi?: string
xu?: string
}
}
dictionary: {
glyphs: [...#Glyph]
dialects: [...#Dialect]
words: [...#Word]
pentas: [...#Penta]
icosas: [...#Icosa]
}