@benev/slate
Version:
frontend web stuff
113 lines (98 loc) • 2.62 kB
text/typescript
import {Nomen} from "../nomen.js"
import {Grammar} from "../grammar.js"
export function falryskNameGrammar() {
const person = Nomen
.dictionary({
prefix: [
"Aed", "Ael", "Aer", "Aeg",
"Aes", "Aet", "Aeon", "Aek",
"Årg", "Ard", "Arn", "Ayn",
"Ar", "Ad", "Atl", "An",
"And", "Anr", "Ain", "Ayn",
"End", "Esk", "Eld", "Ŏln",
"Elg", "Erd", "Eyn", "Esn",
"Olf", "Of", "Oy", "Oc",
"War", "Wer", "Wot", "Wal",
"Gäl", "Gar", "Gaer", "Gir",
"Gor", "Gil", "Ger", "Gan",
"Thós", "Thès", "Tír", "Tal",
"Fâl", "Fen", "Fel", "Fol",
"Fír", "For", "Feyt", "Fern",
"Feyn", "Fayn", "Feln", "Faln",
"Ven", "Van", "Vèl", "Val",
"Veyn", "Vayn", "Veyl", "Vayl",
"Nýz", "Nor", "Nal", "Nyn",
"Mór", "Mar", "Myor", "Mor",
"Lom", "Lem", "Lorn", "Leyn",
"Kal", "Kel", "Kyel", "Kol",
"Shel", "Shen", "Shal", "Shey",
"Pip", "Par", "Pyot", "Poy",
"Thar", "Ther", "Thor", "Thel",
"Uyn", "Uer", "Usn", "Uin",
"Yön", "Yès", "Yol", "Yel",
"Xen", "Zael", "Zaer", "Zod",
"Aʼ", "Oʼ",
],
suffix: [
"th", "st", "yt", "ft",
"sk", "rk", "rd", "nd",
"by", "cy", "ry", "ny",
"yn", "vn", "vy", "ly",
"rik", "rek", "nok", "rôk",
"bie", "rie", "lie",
"nar", "råg", "lg", "rn",
],
o: [..."aaeeiou"],
x: [..."bcdfghklmnprstvwxyz"],
oo: [
"au", "ea", "ía", "oa",
"áe", "ës", "ie", "oé",
"aí", "ei", "iû", "uî",
"al", "eo", "io", "us",
],
ox: [
"ës", "us", "is", "os",
"as", "ar", "er", "or",
"ad", "ed", "id", "od",
"aw", "ew", "iw", "ow",
],
xox: [
"nak", "nëk", "nud", "nok",
"rár", "råth", "ýeg", "rin",
"wég", "wug", "wøg",
],
oxo: [
"ana", "ëna", "anu", "irá",
"arna", "erna", "arnû", "irna",
"ánla", "ënla", "arlu", "irla",
"ára", "atho", "oýo", "ina",
"éwe", "uwa", "øga",
],
})
.patterns([
[["prefix", "o"]],
[["prefix", "oo"]],
[["prefix", "ox"]],
[["prefix", "oxo"]],
[["prefix", "o", "suffix"]],
[["prefix", "o", "suffix"]],
[["prefix", "o", "suffix"]],
[["prefix", "o", "suffix"]],
[["prefix", "oo", "suffix"]],
[["prefix", "oxo", "suffix"]],
// // long names
// [["prefix", "oo", "x", "oo", "suffix"]],
// [["prefix", "o", "x", "oo", "suffix"]],
])
return Grammar
.phrases({
first: b => person.generate(b),
last: b => person.generate(b),
})
.templates([
o => `${o.first} ${o.last}`,
// // long names
// o => `${o.first} of ${o.last}`,
// o => `${o.first} from ${o.last}`,
])
}