vedic-chant: init
This commit is contained in:
107
vedic-chant/veda.ts
Normal file
107
vedic-chant/veda.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
import { readLines } from "https://deno.land/std/io/buffer.ts";
|
||||
|
||||
enum Category {
|
||||
LongVowel = "A",
|
||||
ShortVowel = "a",
|
||||
NoVowel = "0",
|
||||
Consonant = "C",
|
||||
Low = "-",
|
||||
High = "+",
|
||||
Anusvara = "M",
|
||||
Visarga = "H",
|
||||
Space = "_",
|
||||
Pause = " ",
|
||||
One = "1",
|
||||
}
|
||||
|
||||
function category(devanagari: string): Category {
|
||||
switch (devanagari) {
|
||||
case "ि":
|
||||
case "ु":
|
||||
case "अ":
|
||||
case "इ":
|
||||
case "उ":
|
||||
case "ृ":
|
||||
case "ऋ":
|
||||
case "ॢ":
|
||||
case "ऌ":
|
||||
return Category.ShortVowel;
|
||||
case "ी":
|
||||
case "ू":
|
||||
case "ो":
|
||||
case "े":
|
||||
case "ा":
|
||||
case "ई":
|
||||
case "ऊ":
|
||||
case "ओ":
|
||||
case "ए":
|
||||
case "औ":
|
||||
case "ऐ":
|
||||
case "ै":
|
||||
case "ौ":
|
||||
case "ॄ":
|
||||
case "ॣ":
|
||||
case "ॠ":
|
||||
case "ॡ":
|
||||
return Category.LongVowel;
|
||||
case "॒":
|
||||
return Category.Low;
|
||||
case "॑":
|
||||
return Category.High;
|
||||
case "ं":
|
||||
case "म":
|
||||
case "ँ":
|
||||
return Category.Anusvara;
|
||||
case "्":
|
||||
return Category.NoVowel;
|
||||
case " ":
|
||||
case " ":
|
||||
case "ऽ":
|
||||
return Category.Space;
|
||||
case "\n":
|
||||
return Category.Pause;
|
||||
case "१":
|
||||
return Category.One;
|
||||
case "ः":
|
||||
return Category.Visarga;
|
||||
default:
|
||||
return Category.Consonant;
|
||||
}
|
||||
}
|
||||
|
||||
for await (const line of readLines(Deno.stdin)) {
|
||||
const tokenized = [...line]
|
||||
.map(category)
|
||||
.join("")
|
||||
.replace(/C([^a0A])/g, (x) => `Ca${x[1]}`)
|
||||
.replace(/M([^a0A_])/g, (x) => `Ma${x[1]}`)
|
||||
.replace(/M([aA])/g, (x) => `C${x[1]}`)
|
||||
.replace(/C0/g, "C")
|
||||
.replace(/M0/g, "M");
|
||||
|
||||
console.error(tokenized);
|
||||
|
||||
const vowels = tokenized.match(/[Aa]1?[+-]*M?/g);
|
||||
|
||||
for (const vowel of vowels) {
|
||||
if (vowel == "a-") {
|
||||
console.log("246 250");
|
||||
} else if (vowel == "a") {
|
||||
console.log("275 250");
|
||||
} else if (vowel == "a+") {
|
||||
console.log("296 250");
|
||||
} else if (vowel == "A-" || vowel == "aM-" || vowel == "AM-") {
|
||||
console.log("246 1000");
|
||||
} else if (vowel == "A" || vowel == "aM" || vowel == "AM") {
|
||||
console.log("275 1000");
|
||||
} else if (vowel == "A+" || vowel == "aM+" || vowel == "AM+") {
|
||||
console.log("275 500");
|
||||
console.log("296 1000");
|
||||
} else if (vowel == "a1-+" || vowel == "A1-+") {
|
||||
console.log("296 250");
|
||||
console.log("275 1000");
|
||||
}
|
||||
// console.log("0 50");
|
||||
}
|
||||
console.log("0 200");
|
||||
}
|
||||
16
vedic-chant/veda.txt
Normal file
16
vedic-chant/veda.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
रात्री॒ व्य॑ख्यदाय॒ती पु॑रु॒त्रा दे॒व्य१॒॑क्षभिः॑
|
||||
विश्वा॒ अधि॒ श्रियो॑ऽधित
|
||||
ओर्व॑प्रा॒ अम॑र्त्या नि॒वतो॑ दे॒व्यु१॒॑द्वतः॑
|
||||
ज्योति॑षा बाधते॒ तमः॑
|
||||
निरु॒ स्वसा॑रमस्कृतो॒षसं॑ दे॒व्या॑य॒ती
|
||||
अपेदु॑ हासते॒ तमः॑
|
||||
सा नो॑ अ॒द्य यस्या॑ व॒यं नि ते॒ याम॒न्नवि॑क्ष्महि
|
||||
वृ॒क्षे न व॑स॒तिं वयः॑
|
||||
नि ग्रामा॑सो अविक्षत॒ नि प॒द्वन्तो॒ नि प॒क्षिणः॑
|
||||
नि श्ये॒नास॑श्चिद॒र्थिनः॑
|
||||
या॒वया॑ वृ॒क्यं१॒॑ वृकं॑ य॒वय॑ स्ते॒नमू॑र्म्ये
|
||||
अथा॑ नः सु॒तरा॑ भव
|
||||
उप॑ मा॒ पेपि॑श॒त्तमः॑ कृ॒ष्णं व्य॑क्तमस्थित
|
||||
उष॑ ऋ॒णेव॑ यातय
|
||||
उप॑ ते॒ गा इ॒वाक॑रं वृणी॒ष्व दु॑हितर्दिवः
|
||||
रात्रि॒ स्तोमं॒ न जि॒ग्युषे॑
|
||||
Reference in New Issue
Block a user