diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/config.rs | 0 | ||||
| -rw-r--r-- | src/main.rs | 20 | ||||
| -rw-r--r-- | src/phonemes/mod.rs | 0 | ||||
| -rw-r--r-- | src/phonemes/phonemes.rs | 6 | ||||
| -rw-r--r-- | src/tokenizer/mod.rs | 2 | ||||
| -rw-r--r-- | src/tokenizer/tokens.rs | 74 |
6 files changed, 102 insertions, 0 deletions
diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/config.rs diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..d35753c --- /dev/null +++ b/src/main.rs @@ -0,0 +1,20 @@ +use clap::Parser; + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +struct Args { + #[arg(short, long)] + volume: f64, + + #[arg(short, long)] + timbre: f64, +} + +mod tokenizer; +use tokenizer::VoiceCode; + +fn main() { + let _args = Args::parse(); + + println!("Hello, world!"); +} diff --git a/src/phonemes/mod.rs b/src/phonemes/mod.rs new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/phonemes/mod.rs diff --git a/src/phonemes/phonemes.rs b/src/phonemes/phonemes.rs new file mode 100644 index 0000000..9313c21 --- /dev/null +++ b/src/phonemes/phonemes.rs @@ -0,0 +1,6 @@ +#[derive(Debug, PartialEq, Eq)] +pub enum Phoneme { + +} + + diff --git a/src/tokenizer/mod.rs b/src/tokenizer/mod.rs new file mode 100644 index 0000000..54ea9a3 --- /dev/null +++ b/src/tokenizer/mod.rs @@ -0,0 +1,2 @@ +mod tokens; +pub use tokens::VoiceCode; diff --git a/src/tokenizer/tokens.rs b/src/tokenizer/tokens.rs new file mode 100644 index 0000000..fa1d7e7 --- /dev/null +++ b/src/tokenizer/tokens.rs @@ -0,0 +1,74 @@ +#[derive(Debug, PartialEq, Eq)] +pub enum ControlCode { + Melody, // 0x80 + Space, // 0x81 + Question, // 0x82 + Bang, // 0x83 + Newline, // 0x84 + Punct, // 0x85 + Bebe, // 0x86, + Control, // -1 +} + +#[derive(Debug, PartialEq, Eq)] +pub enum Letter { + A, // 0x5D + B, // 0x5E + C, // 0x5F + D, // 0x60 + E, // 0x61 + F, // 0x62 + G, // 0x63 + H, // 0x64 + I, // 0x65 + J, // 0x66 + K, // 0x67 + L, // 0x68 + M, // 0x69 + N, // 0x6A + O, // 0x6B + P, // 0x6C + Q, // 0x6D + R, // 0x6E + S, // 0x6F + T, // 0x70 + U, // 0x71 + V, // 0x72 + W, // 0x73 + X, // 0x74 + Y, // 0x75 + Z, // 0x76 +} + +#[derive(Debug, PartialEq, Eq)] +pub enum Digit { + D0, // 0x53 + D1, // 0x54 + D2, // 0x55 + D3, // 0x56 + D4, // 0x57 + D5, // 0x58 + D6, // 0x59 + D7, // 0x5A + D8, // 0x5B + D9, // 0x5C +} + +#[derive(Debug)] +pub enum VoiceCode { + Letter(Letter), + ControlCode(ControlCode), + Digit(Digit) +} + + +impl Letter { + fn is_shiin(&self) -> bool { + !self.is_boin() + } + + fn is_boin(&self) -> bool { + use Letter::*; + [A, E, I, O, U, N].contains(&self) + } +} |