| 関東のアルファベットでプログラムを書けるツールです (C#) |
|---|
|
関東のアルファベットでプログラムを書けるツールです
書いたコードをC#のへ変換します Download source files: http://www.jkofsp.net/files/ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Drawing.Imaging; using System.Runtime.InteropServices; namespace ShangAlphabet { public partial class Form1 : Form { enum PhonemeType { Unknown, Tsu_N_Num_Symbol, Consonant, Aspirate, Semivowel, Vowel, } struct KeyInfo { Keys[] TheKeys; public KeyInfo(Keys key0) { TheKeys = new Keys[] { key0, }; } public KeyInfo(Keys key0, Keys key1) { TheKeys = new Keys[] { key0, key1, }; } public KeyInfo(Keys key0, Keys key1, Keys key2) { TheKeys = new Keys[] { key0, key1, key2, }; } public KeyInfo(Keys key0, Keys key1, Keys key2, Keys key3) { TheKeys = new Keys[] { key0, key1, key2, key3, }; } public bool CompareWith(IList<Keys> X) { if (TheKeys == null) return false; if (TheKeys.Length != X.Count) return false; for (int i = 0; i < TheKeys.Length; i++) if (TheKeys[i] != X[i]) return false; return true; } public bool CompareWith(IList<Keys> X0, Keys x1) { if (TheKeys == null) return false; if (TheKeys.Length != X0.Count + 1) return false; for (int i = 0; i < X0.Count; i++) if (TheKeys[i] != X0[i]) return false; if (TheKeys[X0.Count] != x1) return false; return true; } } private List<List<ushort>> TextLines; private List<List<byte>> TextColor; private readonly byte Color_Normal = 0, Color_Keyword = 1, Color_Comment = 2, Color_Abc = 3; private int CursorX, CursorDX, CursorY; private int ViewX, ViewY; List<Bitmap[]> Fonts; List<KeyInfo> KeyInfos = new List<KeyInfo>(677); List<Keys> InputBuffer = new List<Keys>(); string CurrentFilePath; FormConv TheFormConv = null; public Form1() { InitializeComponent(); G.SetupKeywords(); G.SetupSymbols(); G.SetupChars(); TextLines = new List<List<ushort>>(); TextLines.Add(new List<ushort>()); CursorX = 0; CursorDX = 0; CursorY = 0; ViewX = 0; ViewY = 0; TextColor = new List<List<byte>>(); TextColor.Add(null); InitKeyInfos(); CurrentFilePath = ""; } private void Form1_Load(object sender, EventArgs e) { Fonts = new List<Bitmap[]>(); Fonts.Add(new Bitmap[677]); for (int i = 0; i <= 676; i++) { Bitmap bmp = (Bitmap)Image.FromFile(@"Characters\" + i.ToString("D3") + ".bmp"); bmp.MakeTransparent(Color.FromArgb(unchecked((int)0xFFffffff))); Fonts[Color_Normal][i] = bmp; } Fonts.Add(new Bitmap[677]); for (int i = 0; i <= 676; i++) { Bitmap bmp = new Bitmap(Fonts[Color_Normal][i]); ChangeColor(bmp, 0xFF, 0, 0, 0, 0xFF, Color.Blue.R, Color.Blue.G, Color.Blue.B); bmp.MakeTransparent(Color.FromArgb(unchecked((int)0xFFffffff))); Fonts[Color_Keyword][i] = bmp; } Fonts.Add(new Bitmap[677]); for (int i = 0; i <= 676; i++) { Bitmap bmp = new Bitmap(Fonts[Color_Normal][i]); ChangeColor(bmp, 0xFF, 0, 0, 0, 0xFF, Color.Green.R, Color.Green.G, Color.Green.B); bmp.MakeTransparent(Color.FromArgb(unchecked((int)0xFFffffff))); Fonts[Color_Comment][i] = bmp; } Fonts.Add(new Bitmap[677]); for (int i = 0; i <= 676; i++) { Bitmap bmp = new Bitmap(Fonts[Color_Normal][i]); ChangeColor(bmp, 0xFF, 0, 0, 0, 0xFF, Color.Aqua.R, Color.Aqua.G, Color.Aqua.B); bmp.MakeTransparent(Color.FromArgb(unchecked((int)0xFFffffff))); Fonts[Color_Abc][i] = bmp; } } public void LoadText(List<ushort> text) { TextLines = new List<List<ushort>>(); TextLines.Add(new List<ushort>()); foreach (ushort i in text) if (i == 583 /*583==enter*/) TextLines.Add(new List<ushort>()); else TextLines[TextLines.Count - 1].Add(i); CursorX = 0; CursorDX = 0; CursorY = 0; ViewX = 0; ViewY = 0; VScroll.Maximum = TextLines.Count - 1; TextColor = new List<List<byte>>(); for (int i = 0; i < TextLines.Count; i++) TextColor.Add(null); for (int i = 0; i < TextLines.Count; i++) Highlight(i); CheckScroll(); View.Refresh(); } public List<ushort> GetText() { List<ushort> text = new List<ushort>(); text.AddRange(TextLines[0]); for (int i = 1; i < TextLines.Count; i++) { text.Add(583 /*583==enter*/); text.AddRange(TextLines[i]); } return text; } public void InsertChar(ushort ch) { List<ushort> tmp; tmp = TextLines[CursorY].GetRange(0, CursorX); tmp.Add(ch); tmp.AddRange(TextLines[CursorY].GetRange(CursorX, TextLines[CursorY].Count - CursorX)); TextLines[CursorY] = tmp; CursorX += 1; Highlight(CursorY); CheckScroll(); View.Refresh(); } public void ReplaceChar(ushort ch) { if (CursorX == 0) return; List<ushort> tmp; tmp = TextLines[CursorY].GetRange(0, CursorX - 1); tmp.Add(ch); tmp.AddRange(TextLines[CursorY].GetRange(CursorX, TextLines[CursorY].Count - CursorX)); TextLines[CursorY] = tmp; //CheckScroll(); Highlight(CursorY); View.Refresh(); } public void DeleteChar() { if (CursorX == 0) return; List<ushort> tmp; tmp = TextLines[CursorY].GetRange(0, CursorX - 1); tmp.AddRange(TextLines[CursorY].GetRange(CursorX, TextLines[CursorY].Count - CursorX)); TextLines[CursorY] = tmp; CursorX -= 1; Highlight(CursorY); CheckScroll(); View.Refresh(); } private void View_Paint(object sender, PaintEventArgs e) { Render(e.Graphics); } private void Render(Graphics g) { if (CursorDX < 0) g.FillRectangle(Brushes.Aqua, (CursorX + CursorDX - ViewX) * 31 + 1, (CursorY - ViewY) * 35, -CursorDX * 31, 35); else if (CursorDX > 0) g.FillRectangle(Brushes.Aqua, (CursorX - ViewX) * 31 + 1, (CursorY - ViewY) * 35, CursorDX * 31, 35); for (int i = ViewY; i < Math.Min(ViewY + View.Height / 35, TextLines.Count); i++) for (int j = ViewX; j < Math.Min(ViewX + View.Width / 31, TextLines[i].Count); j++) if (TextLines[i][j] != 582 /*582==space*/) { Bitmap tmp = Fonts[TextColor[i][j]][TextLines[i][j]]; g.DrawImage(tmp, (j - ViewX) * 31 + 1, (i - ViewY) * 35); } g.DrawLine(Pens.Black, (CursorX - ViewX) * 31 + 1, (CursorY - ViewY) * 35, (CursorX - ViewX) * 31 + 1, (CursorY - ViewY) * 35 + 35); } private bool MapKeyword(List<ushort> ident) { foreach (List<ushort> i in G.Keywords.Keys) if (G.Cmp(i, ident)) return true; return false; } private Tuple<byte, int> Lexer(List<ushort> l, ref int i) { byte color = Color_Normal; int len = 0; List<ushort> ident = new List<ushort>(); _0: if (i >= l.Count) { color = Color_Normal; return new Tuple<byte, int>(color, len); } else if (l[i] == G.Untr0("♪")) { len++; i++; goto _Comment; } else if (l[i] == G.Untr0("`")) { len++; i++; goto _Abc; } else if (l[i] >= G.Untr0("a") && l[i] <= G.Untr0("rwo")) { ident.Add(l[i]); len++; i++; goto _Ident; } else { len++; i++; goto _1; } _1: if (i >= l.Count) { color = Color_Normal; return new Tuple<byte, int>(color, len); } else if (l[i] == G.Untr0("♪")) { color = Color_Normal; return new Tuple<byte, int>(color, len); } else if (l[i] == G.Untr0("`")) { color = Color_Normal; return new Tuple<byte, int>(color, len); } else if (l[i] >= G.Untr0("a") && l[i] <= G.Untr0("rwo")) { color = Color_Normal; return new Tuple<byte, int>(color, len); } else { len++; i++; goto _1; } _Comment: if (i >= l.Count) { color = Color_Comment; i++; return new Tuple<byte, int>(color, len); } else { len++; i++; goto _Comment; }; _Abc: if (i >= l.Count) { color = Color_Abc; return new Tuple<byte, int>(color, len); } else if (l[i] >= G.Untr0("a") && l[i] <= G.Untr0("rwo")) { len++; i++; goto _Abc; } else { color = Color_Abc; return new Tuple<byte, int>(color, len); } _Ident: if (i >= l.Count) { color = MapKeyword(ident) ? Color_Keyword : Color_Normal; return new Tuple<byte, int>(color, len); } else if (l[i] >= 0 && l[i] <= G.Untr0("rwo")) { ident.Add(l[i]); len++; i++; goto _Ident; } else { color = MapKeyword(ident) ? Color_Keyword : Color_Normal; return new Tuple<byte, int>(color, len); } } private void Highlight(int lineIndex) { TextColor[lineIndex] = new List<byte>(); int i = 0; while (i < TextLines[lineIndex].Count) { Tuple<byte, int> t = Lexer(TextLines[lineIndex], ref i); for (int j = 0; j < t.Item2; j++) TextColor[lineIndex].Add(t.Item1); } } private void MenuSetTextColor_Click(object sender, EventArgs e) { List<ushort> _sha = GetText(); string _op = ""; G.Conv(_sha, ref _op); TheFormConv = new FormConv(); TheFormConv.textBox1.Text = _op; TheFormConv.Show(); } private void CheckScroll() { if (CursorY < ViewY) VScroll.Value = CursorY; //if (CursorY > ViewY + View.Height / 35 - 1) // VScroll.Value = CursorY - View.Height / 35 + 1; if (CursorY > ViewY + View.Height / 35 - 1) VScroll.Value = CursorY - View.Height / 35 + 1; if (CursorX < ViewX + 1) HScroll.Value = Math.Max(CursorX - 1, 0); if (CursorX > ViewX + View.Width / 31) HScroll.Value = Math.Min(HScroll.Maximum, CursorX - View.Width / 31); } private void View_MouseClick(object sender, MouseEventArgs e) { InputBuffer.Clear(); Focus(); CursorY = ViewY + e.Y / 35; if (CursorY >= TextLines.Count) CursorY = TextLines.Count - 1; CursorX = ViewX + e.X / 31; if (CursorX >= TextLines[CursorY].Count) CursorX = TextLines[CursorY].Count; CursorDX = 0; CheckScroll(); View.Refresh(); Text = '(' + CursorY.ToString() +')'; } private void View_Resize(object sender, EventArgs e) { try { VScroll.Maximum = TextLines.Count - 1; } catch (Exception) { } View.Refresh(); } private void VScroll_ValueChanged(object sender, EventArgs e) { ViewY = VScroll.Value; View.Refresh(); } private void HScroll_ValueChanged(object sender, EventArgs e) { ViewX = HScroll.Value; View.Refresh(); } protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Up) { InputBuffer.Clear(); CursorY--; if (CursorY < 0) CursorY = 0; if (CursorX > TextLines[CursorY].Count) CursorX = TextLines[CursorY].Count; CursorDX = 0; CheckScroll(); View.Refresh(); return true; } else if (keyData == Keys.Down) { InputBuffer.Clear(); CursorY++; if (CursorY >= TextLines.Count) CursorY = TextLines.Count - 1; if (CursorX > TextLines[CursorY].Count) CursorX = TextLines[CursorY].Count; CursorDX = 0; CheckScroll(); View.Refresh(); return true; } else if (keyData == Keys.Left) { InputBuffer.Clear(); CursorX--; if (CursorX < 0) CursorX = 0; CursorDX = 0; CheckScroll(); View.Refresh(); return true; } else if (keyData == Keys.Right) { InputBuffer.Clear(); CursorX++; if (CursorX > TextLines[CursorY].Count) CursorX = TextLines[CursorY].Count; CursorDX = 0; CheckScroll(); View.Refresh(); return true; } else if (keyData == (Keys.Left | Keys.Shift)) { InputBuffer.Clear(); CursorX--; if (CursorX < 0) CursorX = 0; else CursorDX++; CheckScroll(); View.Refresh(); return true; } else if (keyData == (Keys.Right | Keys.Shift)) { InputBuffer.Clear(); CursorX++; if (CursorX > TextLines[CursorY].Count) CursorX = TextLines[CursorY].Count; else CursorDX--; CheckScroll(); View.Refresh(); return true; } else if (keyData == Keys.Home) { int tmp = 0; for (tmp = 0; tmp < TextLines[CursorY].Count; tmp++) if (TextLines[CursorY][tmp] != G.Untr0("space")) break; CursorX = tmp; CursorDX = 0; CheckScroll(); View.Refresh(); return true; } else if (keyData == Keys.End) { CursorX = TextLines[CursorY].Count; CursorDX = 0; CheckScroll(); View.Refresh(); return true; } else { return base.ProcessCmdKey(ref msg, keyData); } } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Back) { if (InputBuffer.Count == 0) { if (CursorDX == 0) { if (CursorX == 0) { if (CursorY > 0) { CursorX = TextLines[CursorY - 1].Count; TextLines[CursorY - 1].AddRange(TextLines[CursorY]); TextLines.RemoveAt(CursorY); TextColor.RemoveAt(CursorY); CursorY -= 1; VScroll.Maximum = TextLines.Count - 1; Highlight(CursorY); } } else { List<ushort> tmp; tmp = TextLines[CursorY].GetRange(0, CursorX - 1); tmp.AddRange(TextLines[CursorY].GetRange(CursorX, TextLines[CursorY].Count - CursorX)); TextLines[CursorY] = tmp; CursorX -= 1; Highlight(CursorY); } } else { if (CursorDX < 0) { List<ushort> tmp; tmp = TextLines[CursorY].GetRange(0, CursorX + CursorDX); tmp.AddRange(TextLines[CursorY].GetRange(CursorX, TextLines[CursorY].Count - CursorX)); TextLines[CursorY] = tmp; CursorX += CursorDX; } else { List<ushort> tmp; tmp = TextLines[CursorY].GetRange(0, CursorX); tmp.AddRange(TextLines[CursorY].GetRange(CursorX + CursorDX, TextLines[CursorY].Count - CursorX - CursorDX)); TextLines[CursorY] = tmp; } CursorDX = 0; Highlight(CursorY); } } else // InputBuffer.Count > 0 { InputBuffer.Clear(); DeleteChar(); Highlight(CursorY); } } else if (e.KeyData == Keys.Enter) { InputBuffer.Clear(); List<ushort> newLine = TextLines[CursorY].GetRange(CursorX, TextLines[CursorY].Count - CursorX); TextLines[CursorY] = TextLines[CursorY].GetRange(0, CursorX); List<ushort> space = new List<ushort>(); for (int i = 0; i < TextLines[CursorY].Count; i++) if (TextLines[CursorY][i] == G.Untr0("space")) { space.Add(G.Untr0("space")); continue; } else { break; } List<ushort> spaceAndNewLine = new List<ushort>(space); spaceAndNewLine.AddRange(newLine); TextLines.Insert(CursorY + 1, spaceAndNewLine); TextColor.Insert(CursorY + 1, null); CursorY += 1; CursorX = space.Count; CursorDX = 0; VScroll.Maximum = TextLines.Count - 1; Highlight(CursorY - 1); Highlight(CursorY); } else { if (CursorDX != 0) return; PhonemeType phType = GetPhonemeType(e.KeyData); if (phType == PhonemeType.Unknown) { return; } else if (phType == PhonemeType.Tsu_N_Num_Symbol) { InputBuffer.Clear(); InsertChar((ushort)KeyInfos.FindIndex(x => x.CompareWith(new Keys[] { e.KeyData }))); } else if (phType == PhonemeType.Consonant) { InputBuffer.Clear(); InputBuffer.Add(e.KeyData); InsertChar((ushort)KeyInfos.FindIndex(x => x.CompareWith(InputBuffer))); } else if (phType == PhonemeType.Aspirate) { int tmp = KeyInfos.FindIndex(x => x.CompareWith(InputBuffer, e.KeyData)); if (tmp >= 0) { InputBuffer.Add(e.KeyData); ReplaceChar((ushort)tmp); } } else if (phType == PhonemeType.Semivowel) { int tmp = KeyInfos.FindIndex(x => x.CompareWith(InputBuffer, e.KeyData)); if (tmp >= 0) { InputBuffer.Add(e.KeyData); ReplaceChar((ushort)tmp); } } else if (phType == PhonemeType.Vowel) { int tmp = KeyInfos.FindIndex(x => x.CompareWith(InputBuffer, e.KeyData)); if (tmp >= 0) { ReplaceChar((ushort)tmp); InputBuffer.Clear(); } } Highlight(CursorY); } CheckScroll(); View.Refresh(); } private void MenuNew_Click(object sender, EventArgs e) { if (MessageBox.Show("本当に新規作成をしますか?", "新規作成?", MessageBoxButtons.OKCancel) == DialogResult.OK) { LoadText(new List<ushort>()); CurrentFilePath = ""; } } private void MenuOpen_Click(object sender, EventArgs e) { if (OpenDlg.ShowDialog() == DialogResult.OK) { Stream stream = OpenDlg.OpenFile(); BinaryReader r = new BinaryReader(stream); List<ushort> text = new List<ushort>(); while (stream.Position < stream.Length) text.Add(r.ReadUInt16()); r.Close(); LoadText(text); CurrentFilePath = OpenDlg.FileName; } } private void MenuSave_Click(object sender, EventArgs e) { if (CurrentFilePath == "") MenuSaveAs_Click(sender, e); else Save(CurrentFilePath); } private void MenuSaveAs_Click(object sender, EventArgs e) { if (SaveDlg.ShowDialog() == DialogResult.OK) { Save(SaveDlg.FileName); CurrentFilePath = SaveDlg.FileName; } } private void MenuClose_Click(object sender, EventArgs e) { Close(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (TextLines.Count == 1 && TextLines[0].Count == 0) return; if (MessageBox.Show("本当に終了しますか?", "終了?", MessageBoxButtons.OKCancel) != DialogResult.OK) e.Cancel = true; } private void Save(string filePath) { Stream stream = new FileStream(filePath, FileMode.Create); BinaryWriter w = new BinaryWriter(stream); List<ushort> text = GetText(); foreach (ushort i in text) w.Write((UInt16)i); w.Close(); } private PhonemeType GetPhonemeType(Keys key) { switch (key) { case Keys.D0: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D1: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D2: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D3: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D4: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D5: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D6: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D7: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D8: return PhonemeType.Tsu_N_Num_Symbol; case Keys.D9: return PhonemeType.Tsu_N_Num_Symbol; case Keys.I: return PhonemeType.Vowel; case Keys.V: return PhonemeType.Vowel; case Keys.U: return PhonemeType.Vowel; case Keys.E: return PhonemeType.Vowel; case Keys.O: return PhonemeType.Vowel; case Keys.Y: return PhonemeType.Semivowel; case Keys.W: return PhonemeType.Semivowel; case Keys.OemPeriod: // . Q return PhonemeType.Tsu_N_Num_Symbol; case Keys.Oemplus: // ; N return PhonemeType.Tsu_N_Num_Symbol; case Keys.Oemtilde: // ` return PhonemeType.Aspirate; case Keys.A: return PhonemeType.Consonant; case Keys.H: return PhonemeType.Consonant; case Keys.Shift | Keys.H: return PhonemeType.Consonant; case Keys.Shift | Keys.Q: return PhonemeType.Consonant; case Keys.Shift | Keys.J: return PhonemeType.Consonant; case Keys.Shift | Keys.D1: return PhonemeType.Consonant; case Keys.Shift | Keys.D2: return PhonemeType.Consonant; case Keys.K: return PhonemeType.Consonant; case Keys.G: return PhonemeType.Consonant; case Keys.Shift | Keys.K: return PhonemeType.Consonant; case Keys.Shift | Keys.G: return PhonemeType.Consonant; case Keys.Shift | Keys.N: return PhonemeType.Consonant; case Keys.Shift | Keys.C: return PhonemeType.Consonant; case Keys.Shift | Keys.Z: return PhonemeType.Consonant; case Keys.Oemcomma: // , hca return PhonemeType.Consonant; case Keys.Shift | Keys.Oemcomma: // , hja return PhonemeType.Consonant; case Keys.Shift | Keys.Oemplus: // ; jna return PhonemeType.Consonant; case Keys.S: return PhonemeType.Consonant; case Keys.Shift | Keys.S: return PhonemeType.Consonant; case Keys.X: return PhonemeType.Consonant; case Keys.Shift | Keys.X: return PhonemeType.Consonant; case Keys.T: return PhonemeType.Consonant; case Keys.D: return PhonemeType.Consonant; case Keys.Shift | Keys.T: return PhonemeType.Consonant; case Keys.Shift | Keys.D: return PhonemeType.Consonant; case Keys.N: return PhonemeType.Consonant; case Keys.L: return PhonemeType.Consonant; case Keys.C: return PhonemeType.Consonant; case Keys.Z: return PhonemeType.Consonant; case Keys.Q: return PhonemeType.Consonant; case Keys.J: return PhonemeType.Consonant; case Keys.P: return PhonemeType.Consonant; case Keys.B: return PhonemeType.Consonant; case Keys.F: return PhonemeType.Consonant; case Keys.M: return PhonemeType.Consonant; case Keys.Shift | Keys.F: return PhonemeType.Consonant; case Keys.Shift | Keys.V: return PhonemeType.Consonant; case Keys.R: return PhonemeType.Consonant; case Keys.Space: case Keys.OemBackslash: // _ 。 case Keys.OemQuestion: // / 、 case Keys.OemSemicolon: // : : case Keys.Shift | Keys.OemSemicolon: // : ; case Keys.Shift | Keys.OemQuestion: // / ? case Keys.Shift | Keys.OemBackslash: // _ ! case Keys.Control | Keys.Shift | Keys.OemPipe: // | … case Keys.Control | Keys.Shift | Keys.Oemtilde: // ` @ case Keys.Shift | Keys.D3: // # case Keys.Control | Keys.D6: // & case Keys.Shift | Keys.D5: // % case Keys.OemPipe: // | | case Keys.Control | Keys.Oemtilde: // ` ` case Keys.Shift | Keys.D8: // ( case Keys.Shift | Keys.D9: // ) case Keys.Shift | Keys.OemOpenBrackets: // [ { case Keys.Shift | Keys.OemCloseBrackets: // ] } case Keys.OemOpenBrackets: // [ [ case Keys.OemCloseBrackets: // ] ] case Keys.Control | Keys.OemOpenBrackets: // [ 「 case Keys.Control | Keys.OemCloseBrackets: // ] 」 case Keys.Control | Keys.Shift | Keys.OemOpenBrackets: // [ 『 case Keys.Control | Keys.Shift | Keys.OemCloseBrackets: // ] 』 case Keys.Control | Keys.Shift | Keys.D8: // 【 case Keys.Control | Keys.Shift | Keys.D9: // 】 case Keys.Shift | Keys.D4: // ° case Keys.Shift | Keys.D0: // ∞ case Keys.Control | Keys.D0: // ∝ case Keys.Control | Keys.Shift | Keys.D2: // ※ case Keys.Control | Keys.D2: // * case Keys.Control | Keys.D7: // ★ case Keys.Shift | Keys.D7: // ☆ case Keys.Control | Keys.M: // ♪ case Keys.Control | Keys.Oemplus: // ; + case Keys.OemMinus: // - - case Keys.Control | Keys.Shift | Keys.Oemplus: // ; ± case Keys.Control | Keys.OemMinus: // - _ case Keys.Control | Keys.OemSemicolon: // : × case Keys.Control | Keys.Shift | Keys.OemSemicolon: // : ・ case Keys.Control | Keys.OemQuestion: // / ÷ case Keys.Control | Keys.Shift | Keys.OemQuestion: // / / case Keys.Control | Keys.Shift | Keys.OemBackslash: // _ \ case Keys.OemQuotes: // ^ ^ case Keys.Control | Keys.OemQuotes: // ^ √ case Keys.Control | Keys.D4:// (+) case Keys.Control | Keys.Shift | Keys.D4: // (×) case Keys.Shift | Keys.OemMinus: // - = case Keys.Control | Keys.Shift | Keys.OemMinus: // - ≠ case Keys.Control | Keys.G: // ≒ case Keys.Control | Keys.F: // --- case Keys.Control | Keys.Oemcomma: // , < case Keys.Control | Keys.H: // ≪ case Keys.Control | Keys.Shift | Keys.Oemcomma: // , ≦ case Keys.Control | Keys.OemPeriod: // . > case Keys.Control | Keys.J: // ≫ case Keys.Control | Keys.Shift | Keys.OemPeriod: // . ≧ case Keys.Control | Keys.D1: // ¬ case Keys.Shift | Keys.OemPipe: // | ∨ case Keys.Shift | Keys.D6: // ∧ case Keys.Shift | Keys.OemQuotes: // ^ ~ case Keys.Control | Keys.K: // ∵ case Keys.Control | Keys.L: // ∴ case Keys.Shift | Keys.A: // ∀ case Keys.Shift | Keys.E: // ∃ case Keys.Control | Keys.Q: // ∈ case Keys.Control | Keys.Shift | Keys.Q: // ∈/ case Keys.Control | Keys.E: // ∋ case Keys.Control | Keys.Shift | Keys.E: // ∋\ case Keys.Control | Keys.R: // ⊂ case Keys.Control | Keys.Shift | Keys.R: // ⊆ case Keys.Control | Keys.T:// ⊃ case Keys.Control | Keys.Shift | Keys.T: // ⊇ case Keys.Control | Keys.U: // ∪ case Keys.Control | Keys.Y: // ∩ case Keys.Control | Keys.O: // Φ case Keys.Control | Keys.D: // → case Keys.Control | Keys.A: // ← case Keys.Control | Keys.W: // ↑ case Keys.Control | Keys.S: // ↓ case Keys.Control | Keys.Shift | Keys.D: // ⇒ case Keys.Control | Keys.Shift | Keys.A: // <= case Keys.Control | Keys.Shift | Keys.S: // ⇔ case Keys.Control | Keys.Z: // Δ case Keys.Control | Keys.Shift | Keys.Z: // ∇ case Keys.Control | Keys.X: // ∑ case Keys.Control | Keys.Shift | Keys.X: // Π case Keys.Control | Keys.C: // d case Keys.Control | Keys.Shift | Keys.C: // ∂ case Keys.Control | Keys.V: // ∫ case Keys.Control | Keys.Shift | Keys.V: // ∮ case Keys.Control | Keys.B: // ∬ case Keys.Control | Keys.Shift | Keys.B: // ∬○ case Keys.Control | Keys.N: // ∫∫∫ return PhonemeType.Tsu_N_Num_Symbol; } return PhonemeType.Unknown; } |
|
private void InitKeyInfos()
{ for (int i = 0; i <= 676; i++) KeyInfos.Add(new KeyInfo()); KeyInfos[0] = new KeyInfo(Keys.D0); // 0 KeyInfos[1] = new KeyInfo(Keys.D1); KeyInfos[2] = new KeyInfo(Keys.D2); KeyInfos[3] = new KeyInfo(Keys.D3); KeyInfos[4] = new KeyInfo(Keys.D4); KeyInfos[5] = new KeyInfo(Keys.D5); KeyInfos[6] = new KeyInfo(Keys.D6); KeyInfos[7] = new KeyInfo(Keys.D7); KeyInfos[8] = new KeyInfo(Keys.D8); KeyInfos[9] = new KeyInfo(Keys.D9); KeyInfos[10] = new KeyInfo(Keys.A); // a KeyInfos[11] = new KeyInfo(Keys.A, Keys.I); KeyInfos[12] = new KeyInfo(Keys.A, Keys.V); KeyInfos[13] = new KeyInfo(Keys.A, Keys.U); KeyInfos[14] = new KeyInfo(Keys.A, Keys.E); KeyInfos[15] = new KeyInfo(Keys.A, Keys.O); KeyInfos[16] = new KeyInfo(Keys.A, Keys.Y); // ya KeyInfos[17] = new KeyInfo(Keys.A, Keys.Y, Keys.U); KeyInfos[18] = new KeyInfo(Keys.A, Keys.Y, Keys.E); KeyInfos[19] = new KeyInfo(Keys.A, Keys.Y, Keys.O); KeyInfos[20] = new KeyInfo(Keys.A, Keys.W); // wa KeyInfos[21] = new KeyInfo(Keys.A, Keys.W, Keys.I); KeyInfos[22] = new KeyInfo(Keys.A, Keys.W, Keys.E); KeyInfos[23] = new KeyInfo(Keys.A, Keys.W, Keys.O); KeyInfos[24] = new KeyInfo(Keys.H); // ha KeyInfos[25] = new KeyInfo(Keys.H, Keys.I); KeyInfos[26] = new KeyInfo(Keys.H, Keys.V); KeyInfos[27] = new KeyInfo(Keys.H, Keys.U); KeyInfos[28] = new KeyInfo(Keys.H, Keys.E); KeyInfos[29] = new KeyInfo(Keys.H, Keys.O); KeyInfos[30] = new KeyInfo(Keys.H, Keys.Y); // hya KeyInfos[31] = new KeyInfo(Keys.H, Keys.Y, Keys.U); KeyInfos[32] = new KeyInfo(Keys.H, Keys.Y, Keys.E); KeyInfos[33] = new KeyInfo(Keys.H, Keys.Y, Keys.O); KeyInfos[34] = new KeyInfo(Keys.H, Keys.W); // hwa KeyInfos[35] = new KeyInfo(Keys.H, Keys.W, Keys.I); KeyInfos[36] = new KeyInfo(Keys.H, Keys.W, Keys.E); KeyInfos[37] = new KeyInfo(Keys.H, Keys.W, Keys.O); KeyInfos[38] = new KeyInfo(Keys.Shift | Keys.H); // Ha KeyInfos[39] = new KeyInfo(Keys.Shift | Keys.H, Keys.I); KeyInfos[40] = new KeyInfo(Keys.Shift | Keys.H, Keys.V); KeyInfos[41] = new KeyInfo(Keys.Shift | Keys.H, Keys.U); KeyInfos[42] = new KeyInfo(Keys.Shift | Keys.H, Keys.E); KeyInfos[43] = new KeyInfo(Keys.Shift | Keys.H, Keys.O); KeyInfos[44] = new KeyInfo(Keys.Shift | Keys.H, Keys.Y); // Hya KeyInfos[45] = new KeyInfo(Keys.Shift | Keys.H, Keys.Y, Keys.U); KeyInfos[46] = new KeyInfo(Keys.Shift | Keys.H, Keys.Y, Keys.E); KeyInfos[47] = new KeyInfo(Keys.Shift | Keys.H, Keys.Y, Keys.O); KeyInfos[48] = new KeyInfo(Keys.Shift | Keys.H, Keys.W); // Hwa KeyInfos[49] = new KeyInfo(Keys.Shift | Keys.H, Keys.W, Keys.I); KeyInfos[50] = new KeyInfo(Keys.Shift | Keys.H, Keys.W, Keys.E); KeyInfos[51] = new KeyInfo(Keys.Shift | Keys.H, Keys.W, Keys.O); KeyInfos[52] = new KeyInfo(Keys.OemPeriod); // . Q KeyInfos[53] = new KeyInfo(Keys.Shift | Keys.Q); // qa KeyInfos[54] = new KeyInfo(Keys.Shift | Keys.Q, Keys.I); KeyInfos[55] = new KeyInfo(Keys.Shift | Keys.Q, Keys.V); KeyInfos[56] = new KeyInfo(Keys.Shift | Keys.Q, Keys.U); KeyInfos[57] = new KeyInfo(Keys.Shift | Keys.Q, Keys.E); KeyInfos[58] = new KeyInfo(Keys.Shift | Keys.Q, Keys.O); KeyInfos[59] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Y); // qya KeyInfos[60] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Y, Keys.U); KeyInfos[61] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Y, Keys.E); KeyInfos[62] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Y, Keys.O); KeyInfos[63] = new KeyInfo(Keys.Shift | Keys.Q, Keys.W); // qwa KeyInfos[64] = new KeyInfo(Keys.Shift | Keys.Q, Keys.W, Keys.I); KeyInfos[65] = new KeyInfo(Keys.Shift | Keys.Q, Keys.W, Keys.E); KeyInfos[66] = new KeyInfo(Keys.Shift | Keys.Q, Keys.W, Keys.O); KeyInfos[67] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde); // qha KeyInfos[68] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.I); KeyInfos[69] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.V); KeyInfos[70] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.U); KeyInfos[71] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.E); KeyInfos[72] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.O); KeyInfos[73] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.Y); // qhya KeyInfos[74] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[75] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[76] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[77] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.W); // qhwa KeyInfos[78] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.W, Keys.I); KeyInfos[79] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.W, Keys.E); KeyInfos[80] = new KeyInfo(Keys.Shift | Keys.Q, Keys.Oemtilde, Keys.W, Keys.O); KeyInfos[81] = new KeyInfo(Keys.Shift | Keys.J); // Ga KeyInfos[82] = new KeyInfo(Keys.Shift | Keys.J, Keys.I); KeyInfos[83] = new KeyInfo(Keys.Shift | Keys.J, Keys.V); KeyInfos[84] = new KeyInfo(Keys.Shift | Keys.J, Keys.U); KeyInfos[85] = new KeyInfo(Keys.Shift | Keys.J, Keys.E); KeyInfos[86] = new KeyInfo(Keys.Shift | Keys.J, Keys.O); KeyInfos[87] = new KeyInfo(Keys.Shift | Keys.J, Keys.Y); // Gya KeyInfos[88] = new KeyInfo(Keys.Shift | Keys.J, Keys.Y, Keys.U); KeyInfos[89] = new KeyInfo(Keys.Shift | Keys.J, Keys.Y, Keys.E); KeyInfos[90] = new KeyInfo(Keys.Shift | Keys.J, Keys.Y, Keys.O); KeyInfos[91] = new KeyInfo(Keys.Shift | Keys.J, Keys.W); // Gwa KeyInfos[92] = new KeyInfo(Keys.Shift | Keys.J, Keys.W, Keys.I); KeyInfos[93] = new KeyInfo(Keys.Shift | Keys.J, Keys.W, Keys.E); KeyInfos[94] = new KeyInfo(Keys.Shift | Keys.J, Keys.W, Keys.O); KeyInfos[95] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde); // Gha KeyInfos[96] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.I); KeyInfos[97] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.V); KeyInfos[98] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.U); KeyInfos[99] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.E); KeyInfos[100] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.O); |
|
KeyInfos[101] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.Y); // Gya
KeyInfos[102] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[103] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[104] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[105] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.W); // Gwa KeyInfos[106] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.W, Keys.I); KeyInfos[107] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.W, Keys.E); KeyInfos[108] = new KeyInfo(Keys.Shift | Keys.J, Keys.Oemtilde, Keys.W, Keys.O); KeyInfos[109] = new KeyInfo(Keys.Shift | Keys.D1); // xha KeyInfos[110] = new KeyInfo(Keys.Shift | Keys.D1, Keys.I); KeyInfos[111] = new KeyInfo(Keys.Shift | Keys.D1, Keys.V); KeyInfos[112] = new KeyInfo(Keys.Shift | Keys.D1, Keys.U); KeyInfos[113] = new KeyInfo(Keys.Shift | Keys.D1, Keys.E); KeyInfos[114] = new KeyInfo(Keys.Shift | Keys.D1, Keys.O); KeyInfos[115] = new KeyInfo(Keys.Shift | Keys.D1, Keys.Y); // xhya KeyInfos[116] = new KeyInfo(Keys.Shift | Keys.D1, Keys.Y, Keys.U); KeyInfos[117] = new KeyInfo(Keys.Shift | Keys.D1, Keys.Y, Keys.E); KeyInfos[118] = new KeyInfo(Keys.Shift | Keys.D1, Keys.Y, Keys.O); KeyInfos[119] = new KeyInfo(Keys.Shift | Keys.D1, Keys.W); // xhwa KeyInfos[120] = new KeyInfo(Keys.Shift | Keys.D1, Keys.W, Keys.I); KeyInfos[121] = new KeyInfo(Keys.Shift | Keys.D1, Keys.W, Keys.E); KeyInfos[122] = new KeyInfo(Keys.Shift | Keys.D1, Keys.W, Keys.O); KeyInfos[123] = new KeyInfo(Keys.Shift | Keys.D2); // Xha KeyInfos[124] = new KeyInfo(Keys.Shift | Keys.D2, Keys.I); KeyInfos[125] = new KeyInfo(Keys.Shift | Keys.D2, Keys.V); KeyInfos[126] = new KeyInfo(Keys.Shift | Keys.D2, Keys.U); KeyInfos[127] = new KeyInfo(Keys.Shift | Keys.D2, Keys.E); KeyInfos[128] = new KeyInfo(Keys.Shift | Keys.D2, Keys.O); KeyInfos[129] = new KeyInfo(Keys.Shift | Keys.D2, Keys.Y); // Xhya KeyInfos[130] = new KeyInfo(Keys.Shift | Keys.D2, Keys.Y, Keys.U); KeyInfos[131] = new KeyInfo(Keys.Shift | Keys.D2, Keys.Y, Keys.E); KeyInfos[132] = new KeyInfo(Keys.Shift | Keys.D2, Keys.Y, Keys.O); KeyInfos[133] = new KeyInfo(Keys.Shift | Keys.D2, Keys.W); // Xhwa KeyInfos[134] = new KeyInfo(Keys.Shift | Keys.D2, Keys.W, Keys.I); KeyInfos[135] = new KeyInfo(Keys.Shift | Keys.D2, Keys.W, Keys.E); KeyInfos[136] = new KeyInfo(Keys.Shift | Keys.D2, Keys.W, Keys.O); KeyInfos[137] = new KeyInfo(Keys.Oemplus); // ; N KeyInfos[138] = new KeyInfo(Keys.K); // ka KeyInfos[139] = new KeyInfo(Keys.K, Keys.I); KeyInfos[140] = new KeyInfo(Keys.K, Keys.V); KeyInfos[141] = new KeyInfo(Keys.K, Keys.U); KeyInfos[142] = new KeyInfo(Keys.K, Keys.E); KeyInfos[143] = new KeyInfo(Keys.K, Keys.O); KeyInfos[144] = new KeyInfo(Keys.K, Keys.Y); // kya KeyInfos[145] = new KeyInfo(Keys.K, Keys.Y, Keys.U); KeyInfos[146] = new KeyInfo(Keys.K, Keys.Y, Keys.E); KeyInfos[147] = new KeyInfo(Keys.K, Keys.Y, Keys.O); KeyInfos[148] = new KeyInfo(Keys.K, Keys.W); // kwa KeyInfos[149] = new KeyInfo(Keys.K, Keys.W, Keys.I); KeyInfos[150] = new KeyInfo(Keys.K, Keys.W, Keys.E); KeyInfos[151] = new KeyInfo(Keys.K, Keys.W, Keys.O); KeyInfos[152] = new KeyInfo(Keys.K, Keys.Oemtilde); // kha KeyInfos[153] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.I); KeyInfos[154] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.V); KeyInfos[155] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.U); KeyInfos[156] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.E); KeyInfos[157] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.O); KeyInfos[158] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.Y); // khya KeyInfos[159] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[160] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[161] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[162] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.W); // khwa KeyInfos[163] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.W, Keys.I); KeyInfos[164] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.W, Keys.E); KeyInfos[165] = new KeyInfo(Keys.K, Keys.Oemtilde, Keys.W, Keys.O); KeyInfos[166] = new KeyInfo(Keys.G); // ga KeyInfos[167] = new KeyInfo(Keys.G, Keys.I); KeyInfos[168] = new KeyInfo(Keys.G, Keys.V); KeyInfos[169] = new KeyInfo(Keys.G, Keys.U); KeyInfos[170] = new KeyInfo(Keys.G, Keys.E); KeyInfos[171] = new KeyInfo(Keys.G, Keys.O); KeyInfos[172] = new KeyInfo(Keys.G, Keys.Y); // gya KeyInfos[173] = new KeyInfo(Keys.G, Keys.Y, Keys.U); KeyInfos[174] = new KeyInfo(Keys.G, Keys.Y, Keys.E); KeyInfos[175] = new KeyInfo(Keys.G, Keys.Y, Keys.O); KeyInfos[176] = new KeyInfo(Keys.G, Keys.W); // gwa KeyInfos[177] = new KeyInfo(Keys.G, Keys.W, Keys.I); KeyInfos[178] = new KeyInfo(Keys.G, Keys.W, Keys.E); KeyInfos[179] = new KeyInfo(Keys.G, Keys.W, Keys.O); KeyInfos[180] = new KeyInfo(Keys.G, Keys.Oemtilde); // gha KeyInfos[181] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.I); KeyInfos[182] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.V); KeyInfos[183] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.U); KeyInfos[184] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.E); KeyInfos[185] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.O); KeyInfos[186] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.Y); // ghya KeyInfos[187] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[188] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[189] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[190] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.W); // ghwa KeyInfos[191] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.W, Keys.I); KeyInfos[192] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.W, Keys.E); KeyInfos[193] = new KeyInfo(Keys.G, Keys.Oemtilde, Keys.W, Keys.O); KeyInfos[194] = new KeyInfo(Keys.Shift | Keys.K); // xa KeyInfos[195] = new KeyInfo(Keys.Shift | Keys.K, Keys.I); KeyInfos[196] = new KeyInfo(Keys.Shift | Keys.K, Keys.V); KeyInfos[197] = new KeyInfo(Keys.Shift | Keys.K, Keys.U); KeyInfos[198] = new KeyInfo(Keys.Shift | Keys.K, Keys.E); KeyInfos[199] = new KeyInfo(Keys.Shift | Keys.K, Keys.O); |
|
KeyInfos[200] = new KeyInfo(Keys.Shift | Keys.K, Keys.Y); // xya
KeyInfos[201] = new KeyInfo(Keys.Shift | Keys.K, Keys.Y, Keys.U); KeyInfos[202] = new KeyInfo(Keys.Shift | Keys.K, Keys.Y, Keys.E); KeyInfos[203] = new KeyInfo(Keys.Shift | Keys.K, Keys.Y, Keys.O); KeyInfos[204] = new KeyInfo(Keys.Shift | Keys.K, Keys.W); // xwa KeyInfos[205] = new KeyInfo(Keys.Shift | Keys.K, Keys.W, Keys.I); KeyInfos[206] = new KeyInfo(Keys.Shift | Keys.K, Keys.W, Keys.E); KeyInfos[207] = new KeyInfo(Keys.Shift | Keys.K, Keys.W, Keys.O); KeyInfos[208] = new KeyInfo(Keys.Shift | Keys.G); // Xa KeyInfos[209] = new KeyInfo(Keys.Shift | Keys.G, Keys.I); KeyInfos[210] = new KeyInfo(Keys.Shift | Keys.G, Keys.V); KeyInfos[211] = new KeyInfo(Keys.Shift | Keys.G, Keys.U); KeyInfos[212] = new KeyInfo(Keys.Shift | Keys.G, Keys.E); KeyInfos[213] = new KeyInfo(Keys.Shift | Keys.G, Keys.O); KeyInfos[214] = new KeyInfo(Keys.Shift | Keys.G, Keys.Y); // xya KeyInfos[215] = new KeyInfo(Keys.Shift | Keys.G, Keys.Y, Keys.U); KeyInfos[216] = new KeyInfo(Keys.Shift | Keys.G, Keys.Y, Keys.E); KeyInfos[217] = new KeyInfo(Keys.Shift | Keys.G, Keys.Y, Keys.O); KeyInfos[218] = new KeyInfo(Keys.Shift | Keys.G, Keys.W); // xwa KeyInfos[219] = new KeyInfo(Keys.Shift | Keys.G, Keys.W, Keys.I); KeyInfos[220] = new KeyInfo(Keys.Shift | Keys.G, Keys.W, Keys.E); KeyInfos[221] = new KeyInfo(Keys.Shift | Keys.G, Keys.W, Keys.O); KeyInfos[222] = new KeyInfo(Keys.Shift | Keys.N); // nga KeyInfos[223] = new KeyInfo(Keys.Shift | Keys.N, Keys.I); KeyInfos[224] = new KeyInfo(Keys.Shift | Keys.N, Keys.V); KeyInfos[225] = new KeyInfo(Keys.Shift | Keys.N, Keys.U); KeyInfos[226] = new KeyInfo(Keys.Shift | Keys.N, Keys.E); KeyInfos[227] = new KeyInfo(Keys.Shift | Keys.N, Keys.O); KeyInfos[228] = new KeyInfo(Keys.Shift | Keys.N, Keys.Y); // ngya KeyInfos[229] = new KeyInfo(Keys.Shift | Keys.N, Keys.Y, Keys.U); KeyInfos[230] = new KeyInfo(Keys.Shift | Keys.N, Keys.Y, Keys.E); KeyInfos[231] = new KeyInfo(Keys.Shift | Keys.N, Keys.Y, Keys.O); KeyInfos[232] = new KeyInfo(Keys.Shift | Keys.N, Keys.W); // ngwa KeyInfos[233] = new KeyInfo(Keys.Shift | Keys.N, Keys.W, Keys.I); KeyInfos[234] = new KeyInfo(Keys.Shift | Keys.N, Keys.W, Keys.E); KeyInfos[235] = new KeyInfo(Keys.Shift | Keys.N, Keys.W, Keys.O); KeyInfos[236] = new KeyInfo(Keys.Shift | Keys.C); // ca KeyInfos[237] = new KeyInfo(Keys.Shift | Keys.C, Keys.I); KeyInfos[238] = new KeyInfo(Keys.Shift | Keys.C, Keys.U); KeyInfos[239] = new KeyInfo(Keys.Shift | Keys.C, Keys.E); KeyInfos[240] = new KeyInfo(Keys.Shift | Keys.C, Keys.O); KeyInfos[241] = new KeyInfo(Keys.Shift | Keys.C, Keys.Oemtilde); // cha KeyInfos[242] = new KeyInfo(Keys.Shift | Keys.C, Keys.Oemtilde, Keys.I); KeyInfos[243] = new KeyInfo(Keys.Shift | Keys.C, Keys.Oemtilde, Keys.U); KeyInfos[244] = new KeyInfo(Keys.Shift | Keys.C, Keys.Oemtilde, Keys.E); KeyInfos[245] = new KeyInfo(Keys.Shift | Keys.C, Keys.Oemtilde, Keys.O); KeyInfos[246] = new KeyInfo(Keys.Shift | Keys.Z); // ja KeyInfos[247] = new KeyInfo(Keys.Shift | Keys.Z, Keys.I); KeyInfos[248] = new KeyInfo(Keys.Shift | Keys.Z, Keys.U); KeyInfos[249] = new KeyInfo(Keys.Shift | Keys.Z, Keys.E); KeyInfos[250] = new KeyInfo(Keys.Shift | Keys.Z, Keys.O); KeyInfos[251] = new KeyInfo(Keys.Shift | Keys.Z, Keys.Oemtilde); // jha KeyInfos[252] = new KeyInfo(Keys.Shift | Keys.Z, Keys.Oemtilde, Keys.I); KeyInfos[253] = new KeyInfo(Keys.Shift | Keys.Z, Keys.Oemtilde, Keys.U); KeyInfos[254] = new KeyInfo(Keys.Shift | Keys.Z, Keys.Oemtilde, Keys.E); KeyInfos[255] = new KeyInfo(Keys.Shift | Keys.Z, Keys.Oemtilde, Keys.O); KeyInfos[256] = new KeyInfo(Keys.Oemcomma); // , hca KeyInfos[257] = new KeyInfo(Keys.Oemcomma, Keys.I); KeyInfos[258] = new KeyInfo(Keys.Oemcomma, Keys.U); KeyInfos[259] = new KeyInfo(Keys.Oemcomma, Keys.E); KeyInfos[260] = new KeyInfo(Keys.Oemcomma, Keys.O); KeyInfos[261] = new KeyInfo(Keys.Shift | Keys.Oemcomma); // , hja KeyInfos[262] = new KeyInfo(Keys.Shift | Keys.Oemcomma, Keys.I); KeyInfos[263] = new KeyInfo(Keys.Shift | Keys.Oemcomma, Keys.U); KeyInfos[264] = new KeyInfo(Keys.Shift | Keys.Oemcomma, Keys.E); KeyInfos[265] = new KeyInfo(Keys.Shift | Keys.Oemcomma, Keys.O); KeyInfos[266] = new KeyInfo(Keys.Shift | Keys.Oemplus); // ; jna KeyInfos[267] = new KeyInfo(Keys.Shift | Keys.Oemplus, Keys.I); KeyInfos[268] = new KeyInfo(Keys.Shift | Keys.Oemplus, Keys.U); KeyInfos[269] = new KeyInfo(Keys.Shift | Keys.Oemplus, Keys.E); KeyInfos[270] = new KeyInfo(Keys.Shift | Keys.Oemplus, Keys.O); KeyInfos[271] = new KeyInfo(Keys.S); // sa KeyInfos[272] = new KeyInfo(Keys.S, Keys.I); KeyInfos[273] = new KeyInfo(Keys.S, Keys.V); KeyInfos[274] = new KeyInfo(Keys.S, Keys.U); KeyInfos[275] = new KeyInfo(Keys.S, Keys.E); KeyInfos[276] = new KeyInfo(Keys.S, Keys.O); KeyInfos[277] = new KeyInfo(Keys.S, Keys.Y); // sya KeyInfos[278] = new KeyInfo(Keys.S, Keys.Y, Keys.U); KeyInfos[279] = new KeyInfo(Keys.S, Keys.Y, Keys.E); KeyInfos[280] = new KeyInfo(Keys.S, Keys.Y, Keys.O); KeyInfos[281] = new KeyInfo(Keys.S, Keys.W); // swa KeyInfos[282] = new KeyInfo(Keys.S, Keys.W, Keys.I); KeyInfos[283] = new KeyInfo(Keys.S, Keys.W, Keys.E); KeyInfos[284] = new KeyInfo(Keys.S, Keys.W, Keys.O); KeyInfos[285] = new KeyInfo(Keys.Shift | Keys.S); // za KeyInfos[286] = new KeyInfo(Keys.Shift | Keys.S, Keys.I); KeyInfos[287] = new KeyInfo(Keys.Shift | Keys.S, Keys.V); KeyInfos[288] = new KeyInfo(Keys.Shift | Keys.S, Keys.U); KeyInfos[289] = new KeyInfo(Keys.Shift | Keys.S, Keys.E); KeyInfos[290] = new KeyInfo(Keys.Shift | Keys.S, Keys.O); KeyInfos[291] = new KeyInfo(Keys.Shift | Keys.S, Keys.Y); // zya KeyInfos[292] = new KeyInfo(Keys.Shift | Keys.S, Keys.Y, Keys.U); KeyInfos[293] = new KeyInfo(Keys.Shift | Keys.S, Keys.Y, Keys.E); KeyInfos[294] = new KeyInfo(Keys.Shift | Keys.S, Keys.Y, Keys.O); KeyInfos[295] = new KeyInfo(Keys.Shift | Keys.S, Keys.W); // zwa KeyInfos[296] = new KeyInfo(Keys.Shift | Keys.S, Keys.W, Keys.I); KeyInfos[297] = new KeyInfo(Keys.Shift | Keys.S, Keys.W, Keys.E); KeyInfos[298] = new KeyInfo(Keys.Shift | Keys.S, Keys.W, Keys.O); |
|
KeyInfos[299] = new KeyInfo(Keys.X); // sha
KeyInfos[300] = new KeyInfo(Keys.X, Keys.I); KeyInfos[301] = new KeyInfo(Keys.X, Keys.U); KeyInfos[302] = new KeyInfo(Keys.X, Keys.E); KeyInfos[303] = new KeyInfo(Keys.X, Keys.O); KeyInfos[304] = new KeyInfo(Keys.Shift | Keys.X); // zha KeyInfos[305] = new KeyInfo(Keys.Shift | Keys.X, Keys.I); KeyInfos[306] = new KeyInfo(Keys.Shift | Keys.X, Keys.U); KeyInfos[307] = new KeyInfo(Keys.Shift | Keys.X, Keys.E); KeyInfos[308] = new KeyInfo(Keys.Shift | Keys.X, Keys.O); KeyInfos[309] = new KeyInfo(Keys.T); // ta KeyInfos[310] = new KeyInfo(Keys.T, Keys.I); KeyInfos[311] = new KeyInfo(Keys.T, Keys.V); KeyInfos[312] = new KeyInfo(Keys.T, Keys.U); KeyInfos[313] = new KeyInfo(Keys.T, Keys.E); KeyInfos[314] = new KeyInfo(Keys.T, Keys.O); KeyInfos[315] = new KeyInfo(Keys.T, Keys.Y); // tya KeyInfos[316] = new KeyInfo(Keys.T, Keys.Y, Keys.U); KeyInfos[317] = new KeyInfo(Keys.T, Keys.Y, Keys.E); KeyInfos[318] = new KeyInfo(Keys.T, Keys.Y, Keys.O); KeyInfos[319] = new KeyInfo(Keys.T, Keys.W); // twa KeyInfos[320] = new KeyInfo(Keys.T, Keys.W, Keys.I); KeyInfos[321] = new KeyInfo(Keys.T, Keys.W, Keys.E); KeyInfos[322] = new KeyInfo(Keys.T, Keys.W, Keys.O); KeyInfos[323] = new KeyInfo(Keys.T, Keys.Oemtilde); // tha KeyInfos[324] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.I); KeyInfos[325] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.V); KeyInfos[326] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.U); KeyInfos[327] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.E); KeyInfos[328] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.O); KeyInfos[329] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.Y); // thya KeyInfos[330] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[331] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[332] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[333] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.W); // thwa KeyInfos[334] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.W, Keys.I); KeyInfos[335] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.W, Keys.E); KeyInfos[336] = new KeyInfo(Keys.T, Keys.Oemtilde, Keys.W, Keys.O); KeyInfos[337] = new KeyInfo(Keys.D); // da KeyInfos[338] = new KeyInfo(Keys.D, Keys.I); KeyInfos[339] = new KeyInfo(Keys.D, Keys.V); KeyInfos[340] = new KeyInfo(Keys.D, Keys.U); KeyInfos[341] = new KeyInfo(Keys.D, Keys.E); KeyInfos[342] = new KeyInfo(Keys.D, Keys.O); KeyInfos[343] = new KeyInfo(Keys.D, Keys.Y); // dya KeyInfos[344] = new KeyInfo(Keys.D, Keys.Y, Keys.U); KeyInfos[345] = new KeyInfo(Keys.D, Keys.Y, Keys.E); KeyInfos[346] = new KeyInfo(Keys.D, Keys.Y, Keys.O); KeyInfos[347] = new KeyInfo(Keys.D, Keys.W); // dwa KeyInfos[348] = new KeyInfo(Keys.D, Keys.W, Keys.I); KeyInfos[349] = new KeyInfo(Keys.D, Keys.W, Keys.E); KeyInfos[350] = new KeyInfo(Keys.D, Keys.W, Keys.O); KeyInfos[351] = new KeyInfo(Keys.D, Keys.Oemtilde); // dha KeyInfos[352] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.I); KeyInfos[353] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.V); KeyInfos[354] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.U); KeyInfos[355] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.E); KeyInfos[356] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.O); KeyInfos[357] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.Y); // dhya KeyInfos[358] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[359] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[360] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[361] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.W); // dhwa KeyInfos[362] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.W, Keys.I); KeyInfos[363] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.W, Keys.E); KeyInfos[364] = new KeyInfo(Keys.D, Keys.Oemtilde, Keys.W, Keys.O); KeyInfos[365] = new KeyInfo(Keys.Shift | Keys.T); // hta KeyInfos[366] = new KeyInfo(Keys.Shift | Keys.T, Keys.I); KeyInfos[367] = new KeyInfo(Keys.Shift | Keys.T, Keys.V); KeyInfos[368] = new KeyInfo(Keys.Shift | Keys.T, Keys.U); KeyInfos[369] = new KeyInfo(Keys.Shift | Keys.T, Keys.E); KeyInfos[370] = new KeyInfo(Keys.Shift | Keys.T, Keys.O); KeyInfos[371] = new KeyInfo(Keys.Shift | Keys.T, Keys.Y); // htya KeyInfos[372] = new KeyInfo(Keys.Shift | Keys.T, Keys.Y, Keys.U); KeyInfos[373] = new KeyInfo(Keys.Shift | Keys.T, Keys.Y, Keys.E); KeyInfos[374] = new KeyInfo(Keys.Shift | Keys.T, Keys.Y, Keys.O); KeyInfos[375] = new KeyInfo(Keys.Shift | Keys.T, Keys.W); // htwa KeyInfos[376] = new KeyInfo(Keys.Shift | Keys.T, Keys.W, Keys.I); KeyInfos[377] = new KeyInfo(Keys.Shift | Keys.T, Keys.W, Keys.E); KeyInfos[378] = new KeyInfo(Keys.Shift | Keys.T, Keys.W, Keys.O); KeyInfos[379] = new KeyInfo(Keys.Shift | Keys.D); // hda KeyInfos[380] = new KeyInfo(Keys.Shift | Keys.D, Keys.I); KeyInfos[381] = new KeyInfo(Keys.Shift | Keys.D, Keys.V); KeyInfos[382] = new KeyInfo(Keys.Shift | Keys.D, Keys.U); KeyInfos[383] = new KeyInfo(Keys.Shift | Keys.D, Keys.E); KeyInfos[384] = new KeyInfo(Keys.Shift | Keys.D, Keys.O); KeyInfos[385] = new KeyInfo(Keys.Shift | Keys.D, Keys.Y); // hdya KeyInfos[386] = new KeyInfo(Keys.Shift | Keys.D, Keys.Y, Keys.U); KeyInfos[387] = new KeyInfo(Keys.Shift | Keys.D, Keys.Y, Keys.E); KeyInfos[388] = new KeyInfo(Keys.Shift | Keys.D, Keys.Y, Keys.O); KeyInfos[389] = new KeyInfo(Keys.Shift | Keys.D, Keys.W); // hdwa KeyInfos[390] = new KeyInfo(Keys.Shift | Keys.D, Keys.W, Keys.I); KeyInfos[391] = new KeyInfo(Keys.Shift | Keys.D, Keys.W, Keys.E); KeyInfos[392] = new KeyInfo(Keys.Shift | Keys.D, Keys.W, Keys.O); KeyInfos[393] = new KeyInfo(Keys.N); // na KeyInfos[394] = new KeyInfo(Keys.N, Keys.I); KeyInfos[395] = new KeyInfo(Keys.N, Keys.V); KeyInfos[396] = new KeyInfo(Keys.N, Keys.U); KeyInfos[397] = new KeyInfo(Keys.N, Keys.E); KeyInfos[398] = new KeyInfo(Keys.N, Keys.O); |
|
KeyInfos[399] = new KeyInfo(Keys.N, Keys.Y); // nya
KeyInfos[400] = new KeyInfo(Keys.N, Keys.Y, Keys.U); KeyInfos[401] = new KeyInfo(Keys.N, Keys.Y, Keys.E); KeyInfos[402] = new KeyInfo(Keys.N, Keys.Y, Keys.O); KeyInfos[403] = new KeyInfo(Keys.N, Keys.W); // nwa KeyInfos[404] = new KeyInfo(Keys.N, Keys.W, Keys.I); KeyInfos[405] = new KeyInfo(Keys.N, Keys.W, Keys.E); KeyInfos[406] = new KeyInfo(Keys.N, Keys.W, Keys.O); KeyInfos[407] = new KeyInfo(Keys.L); // nja KeyInfos[408] = new KeyInfo(Keys.L, Keys.I); KeyInfos[409] = new KeyInfo(Keys.L, Keys.U); KeyInfos[410] = new KeyInfo(Keys.L, Keys.E); KeyInfos[411] = new KeyInfo(Keys.L, Keys.O); KeyInfos[412] = new KeyInfo(Keys.C); // tsa KeyInfos[413] = new KeyInfo(Keys.C, Keys.I); KeyInfos[414] = new KeyInfo(Keys.C, Keys.V); KeyInfos[415] = new KeyInfo(Keys.C, Keys.U); KeyInfos[416] = new KeyInfo(Keys.C, Keys.E); KeyInfos[417] = new KeyInfo(Keys.C, Keys.O); KeyInfos[418] = new KeyInfo(Keys.C, Keys.Y); // tsya KeyInfos[419] = new KeyInfo(Keys.C, Keys.Y, Keys.U); KeyInfos[420] = new KeyInfo(Keys.C, Keys.Y, Keys.E); KeyInfos[421] = new KeyInfo(Keys.C, Keys.Y, Keys.O); KeyInfos[422] = new KeyInfo(Keys.C, Keys.W); // tswa KeyInfos[423] = new KeyInfo(Keys.C, Keys.W, Keys.I); KeyInfos[424] = new KeyInfo(Keys.C, Keys.W, Keys.E); KeyInfos[425] = new KeyInfo(Keys.C, Keys.W, Keys.O); KeyInfos[426] = new KeyInfo(Keys.C, Keys.Oemtilde); // tsha KeyInfos[427] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.I); KeyInfos[428] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.V); KeyInfos[429] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.U); KeyInfos[430] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.E); KeyInfos[431] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.O); KeyInfos[432] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.Y); // tshya KeyInfos[433] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[434] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[435] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[436] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.W); // tshwa KeyInfos[437] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.W, Keys.I); KeyInfos[438] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.W, Keys.E); KeyInfos[439] = new KeyInfo(Keys.C, Keys.Oemtilde, Keys.W, Keys.O); KeyInfos[440] = new KeyInfo(Keys.Z); // dza KeyInfos[441] = new KeyInfo(Keys.Z, Keys.I); KeyInfos[442] = new KeyInfo(Keys.Z, Keys.V); KeyInfos[443] = new KeyInfo(Keys.Z, Keys.U); KeyInfos[444] = new KeyInfo(Keys.Z, Keys.E); KeyInfos[445] = new KeyInfo(Keys.Z, Keys.O); KeyInfos[446] = new KeyInfo(Keys.Z, Keys.Y); // dsya KeyInfos[447] = new KeyInfo(Keys.Z, Keys.Y, Keys.U); KeyInfos[448] = new KeyInfo(Keys.Z, Keys.Y, Keys.E); KeyInfos[449] = new KeyInfo(Keys.Z, Keys.Y, Keys.O); KeyInfos[450] = new KeyInfo(Keys.Z, Keys.W); // dswa KeyInfos[451] = new KeyInfo(Keys.Z, Keys.W, Keys.I); KeyInfos[452] = new KeyInfo(Keys.Z, Keys.W, Keys.E); KeyInfos[453] = new KeyInfo(Keys.Z, Keys.W, Keys.O); KeyInfos[454] = new KeyInfo(Keys.Z, Keys.Oemtilde); // dsha KeyInfos[455] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.I); KeyInfos[456] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.V); KeyInfos[457] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.U); KeyInfos[458] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.E); KeyInfos[459] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.O); KeyInfos[460] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.Y); // dshya KeyInfos[461] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[462] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[463] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[464] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.W); // dshwa KeyInfos[465] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.W, Keys.I); KeyInfos[466] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.W, Keys.E); KeyInfos[467] = new KeyInfo(Keys.Z, Keys.Oemtilde, Keys.W, Keys.O); KeyInfos[468] = new KeyInfo(Keys.Q); // tsja KeyInfos[469] = new KeyInfo(Keys.Q, Keys.I); KeyInfos[470] = new KeyInfo(Keys.Q, Keys.U); KeyInfos[471] = new KeyInfo(Keys.Q, Keys.E); KeyInfos[472] = new KeyInfo(Keys.Q, Keys.O); KeyInfos[473] = new KeyInfo(Keys.Q, Keys.Oemtilde); // tsjha KeyInfos[474] = new KeyInfo(Keys.Q, Keys.Oemtilde, Keys.I); KeyInfos[475] = new KeyInfo(Keys.Q, Keys.Oemtilde, Keys.U); KeyInfos[476] = new KeyInfo(Keys.Q, Keys.Oemtilde, Keys.E); KeyInfos[477] = new KeyInfo(Keys.Q, Keys.Oemtilde, Keys.O); KeyInfos[478] = new KeyInfo(Keys.J); // dzja KeyInfos[479] = new KeyInfo(Keys.J, Keys.I); KeyInfos[480] = new KeyInfo(Keys.J, Keys.U); KeyInfos[481] = new KeyInfo(Keys.J, Keys.E); KeyInfos[482] = new KeyInfo(Keys.J, Keys.O); KeyInfos[483] = new KeyInfo(Keys.J, Keys.Oemtilde); // dsjha KeyInfos[484] = new KeyInfo(Keys.J, Keys.Oemtilde, Keys.I); KeyInfos[485] = new KeyInfo(Keys.J, Keys.Oemtilde, Keys.U); KeyInfos[486] = new KeyInfo(Keys.J, Keys.Oemtilde, Keys.E); KeyInfos[487] = new KeyInfo(Keys.J, Keys.Oemtilde, Keys.O); KeyInfos[488] = new KeyInfo(Keys.P); // pa KeyInfos[489] = new KeyInfo(Keys.P, Keys.I); KeyInfos[490] = new KeyInfo(Keys.P, Keys.V); KeyInfos[491] = new KeyInfo(Keys.P, Keys.U); KeyInfos[492] = new KeyInfo(Keys.P, Keys.E); KeyInfos[493] = new KeyInfo(Keys.P, Keys.O); KeyInfos[494] = new KeyInfo(Keys.P, Keys.Y); // pya KeyInfos[495] = new KeyInfo(Keys.P, Keys.Y, Keys.U); KeyInfos[496] = new KeyInfo(Keys.P, Keys.Y, Keys.E); KeyInfos[497] = new KeyInfo(Keys.P, Keys.Y, Keys.O); |
|
KeyInfos[498] = new KeyInfo(Keys.P, Keys.Oemtilde); // pha
KeyInfos[499] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.I); KeyInfos[500] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.V); KeyInfos[501] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.U); KeyInfos[502] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.E); KeyInfos[503] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.O); KeyInfos[504] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.Y); // phya KeyInfos[505] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[506] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[507] = new KeyInfo(Keys.P, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[508] = new KeyInfo(Keys.B); // ba KeyInfos[509] = new KeyInfo(Keys.B, Keys.I); KeyInfos[510] = new KeyInfo(Keys.B, Keys.V); KeyInfos[511] = new KeyInfo(Keys.B, Keys.U); KeyInfos[512] = new KeyInfo(Keys.B, Keys.E); KeyInfos[513] = new KeyInfo(Keys.B, Keys.O); KeyInfos[514] = new KeyInfo(Keys.B, Keys.Y); // bya KeyInfos[515] = new KeyInfo(Keys.B, Keys.Y, Keys.U); KeyInfos[516] = new KeyInfo(Keys.B, Keys.Y, Keys.E); KeyInfos[517] = new KeyInfo(Keys.B, Keys.Y, Keys.O); KeyInfos[518] = new KeyInfo(Keys.B, Keys.Oemtilde); // bha KeyInfos[519] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.I); KeyInfos[520] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.V); KeyInfos[521] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.U); KeyInfos[522] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.E); KeyInfos[523] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.O); KeyInfos[524] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.Y); // bhya KeyInfos[525] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.Y, Keys.U); KeyInfos[526] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.Y, Keys.E); KeyInfos[527] = new KeyInfo(Keys.B, Keys.Oemtilde, Keys.Y, Keys.O); KeyInfos[528] = new KeyInfo(Keys.F); // pfa KeyInfos[529] = new KeyInfo(Keys.F, Keys.I); KeyInfos[530] = new KeyInfo(Keys.F, Keys.V); KeyInfos[531] = new KeyInfo(Keys.F, Keys.U); KeyInfos[532] = new KeyInfo(Keys.F, Keys.E); KeyInfos[533] = new KeyInfo(Keys.F, Keys.O); KeyInfos[534] = new KeyInfo(Keys.F, Keys.Y); // pfya KeyInfos[535] = new KeyInfo(Keys.F, Keys.Y, Keys.U); KeyInfos[536] = new KeyInfo(Keys.F, Keys.Y, Keys.E); KeyInfos[537] = new KeyInfo(Keys.F, Keys.Y, Keys.O); KeyInfos[538] = new KeyInfo(Keys.M); // ma KeyInfos[539] = new KeyInfo(Keys.M, Keys.I); KeyInfos[540] = new KeyInfo(Keys.M, Keys.V); KeyInfos[541] = new KeyInfo(Keys.M, Keys.U); KeyInfos[542] = new KeyInfo(Keys.M, Keys.E); KeyInfos[543] = new KeyInfo(Keys.M, Keys.O); KeyInfos[544] = new KeyInfo(Keys.M, Keys.Y); // mya KeyInfos[545] = new KeyInfo(Keys.M, Keys.Y, Keys.U); KeyInfos[546] = new KeyInfo(Keys.M, Keys.Y, Keys.E); KeyInfos[547] = new KeyInfo(Keys.M, Keys.Y, Keys.O); KeyInfos[548] = new KeyInfo(Keys.Shift | Keys.F); // fa KeyInfos[549] = new KeyInfo(Keys.Shift | Keys.F, Keys.I); KeyInfos[550] = new KeyInfo(Keys.Shift | Keys.F, Keys.V); KeyInfos[551] = new KeyInfo(Keys.Shift | Keys.F, Keys.U); KeyInfos[552] = new KeyInfo(Keys.Shift | Keys.F, Keys.E); KeyInfos[553] = new KeyInfo(Keys.Shift | Keys.F, Keys.O); KeyInfos[554] = new KeyInfo(Keys.Shift | Keys.F, Keys.Y); // fya KeyInfos[555] = new KeyInfo(Keys.Shift | Keys.F, Keys.Y, Keys.U); KeyInfos[556] = new KeyInfo(Keys.Shift | Keys.F, Keys.Y, Keys.E); KeyInfos[557] = new KeyInfo(Keys.Shift | Keys.F, Keys.Y, Keys.O); KeyInfos[558] = new KeyInfo(Keys.Shift | Keys.V); // va KeyInfos[559] = new KeyInfo(Keys.Shift | Keys.V, Keys.I); KeyInfos[560] = new KeyInfo(Keys.Shift | Keys.V, Keys.V); KeyInfos[561] = new KeyInfo(Keys.Shift | Keys.V, Keys.U); KeyInfos[562] = new KeyInfo(Keys.Shift | Keys.V, Keys.E); KeyInfos[563] = new KeyInfo(Keys.Shift | Keys.V, Keys.O); KeyInfos[564] = new KeyInfo(Keys.Shift | Keys.V, Keys.Y); // vya KeyInfos[565] = new KeyInfo(Keys.Shift | Keys.V, Keys.Y, Keys.U); KeyInfos[566] = new KeyInfo(Keys.Shift | Keys.V, Keys.Y, Keys.E); KeyInfos[567] = new KeyInfo(Keys.Shift | Keys.V, Keys.Y, Keys.O); KeyInfos[568] = new KeyInfo(Keys.R); // ra KeyInfos[569] = new KeyInfo(Keys.R, Keys.I); KeyInfos[570] = new KeyInfo(Keys.R, Keys.V); KeyInfos[571] = new KeyInfo(Keys.R, Keys.U); KeyInfos[572] = new KeyInfo(Keys.R, Keys.E); KeyInfos[573] = new KeyInfo(Keys.R, Keys.O); KeyInfos[574] = new KeyInfo(Keys.R, Keys.Y); // rya KeyInfos[575] = new KeyInfo(Keys.R, Keys.Y, Keys.U); KeyInfos[576] = new KeyInfo(Keys.R, Keys.Y, Keys.E); KeyInfos[577] = new KeyInfo(Keys.R, Keys.Y, Keys.O); KeyInfos[578] = new KeyInfo(Keys.R, Keys.W); // rya KeyInfos[579] = new KeyInfo(Keys.R, Keys.W, Keys.I); KeyInfos[580] = new KeyInfo(Keys.R, Keys.W, Keys.E); KeyInfos[581] = new KeyInfo(Keys.R, Keys.W, Keys.O); |
|
KeyInfos[582] = new KeyInfo(Keys.Space); // space
KeyInfos[583] = new KeyInfo(); // enter KeyInfos[584] = new KeyInfo(Keys.OemBackslash); // _ 。 KeyInfos[585] = new KeyInfo(Keys.OemQuestion); // / 、 KeyInfos[586] = new KeyInfo(Keys.OemSemicolon); // : KeyInfos[587] = new KeyInfo(Keys.Shift | Keys.OemSemicolon); // : KeyInfos[588] = new KeyInfo(Keys.Shift | Keys.OemQuestion); // / ? KeyInfos[589] = new KeyInfo(Keys.Shift | Keys.OemBackslash); // _ ! KeyInfos[590] = new KeyInfo(Keys.Control | Keys.Shift | Keys.OemPipe); // | … KeyInfos[591] = new KeyInfo(Keys.Control | Keys.Shift | Keys.Oemtilde); // ` @ KeyInfos[592] = new KeyInfo(Keys.Shift | Keys.D3); // # KeyInfos[593] = new KeyInfo(Keys.Control | Keys.D6); // & KeyInfos[594] = new KeyInfo(Keys.Shift | Keys.D5); // % KeyInfos[595] = new KeyInfo(Keys.OemPipe); // | | KeyInfos[596] = new KeyInfo(Keys.Control | Keys.Oemtilde); // ` KeyInfos[597] = new KeyInfo(Keys.Shift | Keys.D8); // ( KeyInfos[598] = new KeyInfo(Keys.Shift | Keys.D9); // ) KeyInfos[599] = new KeyInfo(Keys.Shift | Keys.OemOpenBrackets); // [ { KeyInfos[600] = new KeyInfo(Keys.Shift | Keys.OemCloseBrackets); // ] } KeyInfos[601] = new KeyInfo(Keys.OemOpenBrackets); // [ [ KeyInfos[602] = new KeyInfo(Keys.OemCloseBrackets); // ] ] KeyInfos[603] = new KeyInfo(Keys.Control | Keys.OemOpenBrackets); // [ 「 KeyInfos[604] = new KeyInfo(Keys.Control | Keys.OemCloseBrackets); // ] 」 KeyInfos[605] = new KeyInfo(Keys.Control | Keys.Shift | Keys.OemOpenBrackets); // [ 『 KeyInfos[606] = new KeyInfo(Keys.Control | Keys.Shift | Keys.OemCloseBrackets); // ] 』 KeyInfos[607] = new KeyInfo(Keys.Control | Keys.Shift | Keys.D8); // 【 KeyInfos[608] = new KeyInfo(Keys.Control | Keys.Shift | Keys.D9); // 】 KeyInfos[609] = new KeyInfo(Keys.Shift | Keys.D4); // ° KeyInfos[610] = new KeyInfo(Keys.Shift | Keys.D0); // ∞ KeyInfos[611] = new KeyInfo(Keys.Control | Keys.D0); // ∝ KeyInfos[612] = new KeyInfo(Keys.Control | Keys.Shift | Keys.D2); // ※ KeyInfos[613] = new KeyInfo(Keys.Control | Keys.D2); // * KeyInfos[614] = new KeyInfo(Keys.Control | Keys.D7); // ★ KeyInfos[615] = new KeyInfo(Keys.Shift | Keys.D7); // ☆ KeyInfos[616] = new KeyInfo(Keys.Control | Keys.M); // ♪ KeyInfos[617] = new KeyInfo(Keys.Control | Keys.Oemplus); // ; + KeyInfos[618] = new KeyInfo(Keys.OemMinus); // - - KeyInfos[619] = new KeyInfo(Keys.Control | Keys.Shift | Keys.Oemplus); // ; ± KeyInfos[620] = new KeyInfo(Keys.Control | Keys.OemMinus); // - _ KeyInfos[621] = new KeyInfo(Keys.Control | Keys.OemSemicolon); // : × KeyInfos[622] = new KeyInfo(Keys.Control | Keys.Shift | Keys.OemSemicolon); // : ・ KeyInfos[623] = new KeyInfo(Keys.Control | Keys.OemQuestion); // / ÷ KeyInfos[624] = new KeyInfo(Keys.Control | Keys.Shift | Keys.OemQuestion); // / / KeyInfos[625] = new KeyInfo(Keys.Control | Keys.Shift | Keys.OemBackslash); // _ \ KeyInfos[626] = new KeyInfo(Keys.OemQuotes); // ^ ^ KeyInfos[627] = new KeyInfo(Keys.Control | Keys.OemQuotes); // ^ √ KeyInfos[628] = new KeyInfo(Keys.Control | Keys.D4); // (+) KeyInfos[629] = new KeyInfo(Keys.Control | Keys.Shift | Keys.D4); // (×) KeyInfos[630] = new KeyInfo(Keys.Shift | Keys.OemMinus); // - = KeyInfos[631] = new KeyInfo(Keys.Control | Keys.Shift | Keys.OemMinus); // - ≠ KeyInfos[632] = new KeyInfo(Keys.Control | Keys.G); // ≒ KeyInfos[633] = new KeyInfo(Keys.Control | Keys.F); // --- KeyInfos[634] = new KeyInfo(Keys.Control | Keys.Oemcomma); // , < KeyInfos[635] = new KeyInfo(Keys.Control | Keys.H); // ≪ KeyInfos[636] = new KeyInfo(Keys.Control | Keys.Shift | Keys.Oemcomma); // , ≦ KeyInfos[637] = new KeyInfo(Keys.Control | Keys.OemPeriod); // . > KeyInfos[638] = new KeyInfo(Keys.Control | Keys.J); // ≫ KeyInfos[639] = new KeyInfo(Keys.Control | Keys.Shift | Keys.OemPeriod); // . ≧ KeyInfos[640] = new KeyInfo(Keys.Control | Keys.D1); // ¬ KeyInfos[641] = new KeyInfo(Keys.Shift | Keys.OemPipe); // | ∨ KeyInfos[642] = new KeyInfo(Keys.Shift | Keys.D6); // ∧ KeyInfos[643] = new KeyInfo(Keys.Shift | Keys.OemQuotes); // ^ ~ KeyInfos[644] = new KeyInfo(Keys.Control | Keys.K); // ∵ KeyInfos[645] = new KeyInfo(Keys.Control | Keys.L); // ∴ KeyInfos[646] = new KeyInfo(Keys.Shift | Keys.A); // ∀ KeyInfos[647] = new KeyInfo(Keys.Shift | Keys.E); // ∃ KeyInfos[648] = new KeyInfo(Keys.Control | Keys.Q); // ∈ KeyInfos[649] = new KeyInfo(Keys.Control | Keys.Shift | Keys.Q); // ∈/ KeyInfos[650] = new KeyInfo(Keys.Control | Keys.E); // ∋ KeyInfos[651] = new KeyInfo(Keys.Control | Keys.Shift | Keys.E); // ∋\ KeyInfos[652] = new KeyInfo(Keys.Control | Keys.R); // ⊂ KeyInfos[653] = new KeyInfo(Keys.Control | Keys.Shift | Keys.R); // ⊆ KeyInfos[654] = new KeyInfo(Keys.Control | Keys.T); // ⊃ KeyInfos[655] = new KeyInfo(Keys.Control | Keys.Shift | Keys.T); // ⊇ KeyInfos[656] = new KeyInfo(Keys.Control | Keys.U); // ∪ KeyInfos[657] = new KeyInfo(Keys.Control | Keys.Y); // ∩ KeyInfos[658] = new KeyInfo(Keys.Control | Keys.O); // Φ KeyInfos[659] = new KeyInfo(Keys.Control | Keys.D); // → KeyInfos[660] = new KeyInfo(Keys.Control | Keys.A); // ← KeyInfos[661] = new KeyInfo(Keys.Control | Keys.W); // ↑ KeyInfos[662] = new KeyInfo(Keys.Control | Keys.S); // ↓ KeyInfos[663] = new KeyInfo(Keys.Control | Keys.Shift | Keys.D); // ⇒ KeyInfos[664] = new KeyInfo(Keys.Control | Keys.Shift | Keys.A); // <= KeyInfos[665] = new KeyInfo(Keys.Control | Keys.Shift | Keys.S); // ⇔ KeyInfos[666] = new KeyInfo(Keys.Control | Keys.Z); // Δ KeyInfos[667] = new KeyInfo(Keys.Control | Keys.Shift | Keys.Z); // ∇ KeyInfos[668] = new KeyInfo(Keys.Control | Keys.X); // ∑ KeyInfos[669] = new KeyInfo(Keys.Control | Keys.Shift | Keys.X); // Π KeyInfos[670] = new KeyInfo(Keys.Control | Keys.C); // d KeyInfos[671] = new KeyInfo(Keys.Control | Keys.Shift | Keys.C); // ∂ KeyInfos[672] = new KeyInfo(Keys.Control | Keys.V); // ∫ KeyInfos[673] = new KeyInfo(Keys.Control | Keys.Shift | Keys.V); // ∮ KeyInfos[674] = new KeyInfo(Keys.Control | Keys.B); // ∬ KeyInfos[675] = new KeyInfo(Keys.Control | Keys.Shift | Keys.B); // ∬○ KeyInfos[676] = new KeyInfo(Keys.Control | Keys.N); // ∫∫∫ } |
|
public static void ChangeColor(Bitmap bmp, byte inColorA, byte inColorR, byte inColorG, byte inColorB, byte outColorA, byte outColorR, byte outColorG, byte outColorB) { // Specify a pixel format. PixelFormat pxf = PixelFormat.Format32bppArgb; // Lock the bitmap's bits. Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, pxf); // Get the address of the first line. IntPtr ptr = bmpData.Scan0; // Declare an array to hold the bytes of the bitmap. // int numBytes = bmp.Width * bmp.Height * 3; int numBytes = bmpData.Stride * bmp.Height; byte[] argbValues = new byte[numBytes]; // Copy the RGB values into the array. Marshal.Copy(ptr, argbValues, 0, numBytes); // Manipulate the bitmap for (int counter = 0; counter < argbValues.Length; counter += 4) { if (argbValues[counter] == inColorB && argbValues[counter + 1] == inColorG && argbValues[counter + 2] == inColorR && argbValues[counter + 3] == inColorA) { argbValues[counter] = outColorB; argbValues[counter + 1] = outColorG; argbValues[counter + 2] = outColorR; argbValues[counter + 3] = outColorA; } } // Copy the RGB values back to the bitmap Marshal.Copy(argbValues, 0, ptr, numBytes); // Unlock the bits. bmp.UnlockBits(bmpData); } } } |
|
<Lexer.cs>
using System; using System.Collections.Generic; using Takaku.ShangAlphabet; public enum TokenType { None, Space, Comment, Id, Abc, Num, Symbol, } public class Token { public TokenType Type; public List<ushort> Val; public Token(TokenType type, List<ushort> val) { Type = type; Val = val; } } // process spaces as a token // but "_"(sha) is not supported public static partial class G { public static List<ushort> Untr(string s) { List<ushort> tmp = new List<ushort>(); ; tmp.AddRange((Transcription.TheTranscription.Untranscribe(s))); return tmp; } public static ushort Untr0(string ch) { return Untr(ch)[0]; } public static Token NextTokenSha(List<ushort> l, ref int i) // 空の行はnullを戻す { if (l.Count == 0) return null; Token t = new Token(TokenType.None, new List<ushort>()); _Start: if (i >= l.Count) { return null; } else if (l[i] == Untr0("space")) { t.Type = TokenType.Space; t.Val.Add(l[i]); i++; goto _Space; } else if (l[i] >= Untr0("a") && l[i] <= Untr0("rwo")) { t.Type = TokenType.Id; t.Val.Add(l[i]); i++; goto _Id; } else if (l[i] >= 0 && l[i] <= 9) { t.Type = TokenType.Num; t.Val.Add(l[i]); i++; goto _Num; } else if (l[i] == Untr0("`")) { t.Type = TokenType.Abc; i++; goto _Abc; } else if (l[i] == Untr0("♪")) { t.Type = TokenType.Comment; i++; return t; } else { t.Type = TokenType.Symbol; t.Val.Add(l[i]); i++; return t; } // a symbol _Space: if (i >= l.Count) { return t; } else if (l[i] == Untr0("space")) { t.Val.Add(l[i]); i++; goto _Space; } else { return t; } //_Comment: // if (i >= l.Count) { return t; } // else { t.Val.Add(l[i]); i++; goto _Comment; } _Id: if (i >= l.Count) { return t; } else if (l[i] >= Untr0("a") && l[i] <= Untr0("rwo")) { t.Val.Add(l[i]); i++; goto _Id; } else { return t; } _Abc: if (i >= l.Count) { return t; } else if (l[i] >= Untr0("a") && l[i] <= Untr0("rwo")) { t.Val.Add(l[i]); i++; goto _Abc; } else { return t; } _Num: if (i >= l.Count) { return t; } else if (l[i] >= 0 && l[i] <= 9) { t.Val.Add(l[i]); i++; goto _Num; } else { return t; } } } |
|
using System;
using System.Collections.Generic; using System.Linq; using System.Text; using Takaku.ShangAlphabet; public static partial class G { public static string Mul(char ch, int count) { string s = ""; for (int i = 0; i < count; i++) s += ch; return s; } public static bool Cmp(List<ushort> a, List<ushort> b) { if (a.Count != b.Count) return false; for (int i = 0; i <= a.Count - 1; i++) { if (a[i] != b[i]) return false; } return true; } public static void Conv(List<ushort> _sha, ref string _op) { List<List<ushort>> sha = new List<List<ushort>>(); sha.Add(new List<ushort>()); for (int i = 0; i <= _sha.Count - 1; i++) { if (_sha[i] == 583) { sha.Add(new List<ushort>()); } else sha[sha.Count - 1].Add(_sha[i]); } List<List<string>> op = new List<List<string>>(); _Conv(sha, op); _op = ""; for (int i = 0; i <= op.Count - 1; i++) { for (int j = 0; j <= op[i].Count - 1; j++) { _op += op[i][j]; } _op += "\r\n"; } } public static void _Conv(List<List<ushort>> sha, List<List<string>> op) { op.Clear(); for (int l = 0; l <= sha.Count - 1; l++) { op.Add(new List<string>()); int i = 0; while (i <= sha[l].Count - 1) { Token t = NextTokenSha(sha[l], ref i); string s = null; if (t.Type == TokenType.Space) { s = Mul(' ', t.Val.Count); } else if (t.Type == TokenType.Comment) { s = "//"; // + Transcription.TheTranscription.Transcribe(t.Val.ToArray()); } else if (t.Type == TokenType.Id) { if (!MapKeyword(t.Val, ref s)) s = Transcription.TheTranscription.Transcribe(t.Val.ToArray()); } else if (t.Type == TokenType.Abc) { s = MapAbc(t.Val); } else if (t.Type == TokenType.Num) { s = Transcription.TheTranscription.TranslateNumber(t.Val.ToArray()); } else if (t.Type == TokenType.Symbol) { s = MapSymbol(t.Val[0]); } op[l].Add(s); } } } public static bool MapKeyword(List<ushort> sha, ref string s) { foreach (List<ushort> i in Keywords.Keys) { if (Cmp(i, sha)) { s = Keywords[i]; return true; } } return false; } public static string MapAbc(List<ushort> sha) { string s = ""; for (int i = 0; i <= sha.Count - 1; i++) { foreach (ushort j in Chars.Keys) { if (sha[i] == j) { s += Chars[j]; goto _L; } } s += "X"; _L: ; } return s; } public static string MapSymbol(ushort sha) { if (Symbols.Keys.Contains(sha)) return Symbols[sha]; else return Transcription.TheTranscription.Transcribe(new ushort[]{ sha, }); } public static Dictionary<List<ushort>, string> Keywords = new Dictionary<List<ushort>, string>(); public static Dictionary<ushort, string> Symbols = new Dictionary<ushort, string>(); public static Dictionary<ushort, char> Chars = new Dictionary<ushort, char>(); public static void SetupKeywords() { Keywords.Add(Untr("ta_ku_wa_e_ta"), "Cached"); Keywords.Add(Untr("a_ri_sa_ma"), "State"); Keywords.Add(Untr("ko_ma_ka_wa_ke"), "Diff"); Keywords.Add(Untr("u_tseu_Si"), "as"); Keywords.Add(Untr("mo_to"), "base"); Keywords.Add(Untr("bu_ru"), "bool"); Keywords.Add(Untr("to_ma_ru"), "break"); Keywords.Add(Untr("dZi_bu_Si"), "byte"); // sbyte sa_dzi_bu_Si Keywords.Add(Untr("ba_a_i"), "case"); Keywords.Add(Untr("to_ra_e_ru"), "catch"); Keywords.Add(Untr("dZi"), "char"); Keywords.Add(Untr("ta_gu_i"), "class"); Keywords.Add(Untr("sa_da_ma_ri"), "const"); Keywords.Add(Untr("tseu_dzeu_ke"), "continue"); Keywords.Add(Untr("seu_de_nji_sa_da_me"), "default"); Keywords.Add(Untr("ka_wa_ri"), "delegate"); Keywords.Add(Untr("Si_ro"), "do"); Keywords.Add(Untr("Pu_ta"), "double"); Keywords.Add(Untr("de_na_i_to"), "else"); Keywords.Add(Untr("re_H_kyo"), "enum"); Keywords.Add(Untr("ha_H_ki_ri"), "explicit"); // implicit da_ma_ru Keywords.Add(Untr("so_to_ka_ra"), "extern"); Keywords.Add(Untr("i_na"), "false"); // true ha_i Keywords.Add(Untr("o_wa_ru"), "finally"); Keywords.Add(Untr("u_ki"), "float"); Keywords.Add(Untr("no_ta_me"), "for"); Keywords.Add(Untr("o_no_o_no"), "foreach"); Keywords.Add(Untr("i_ke"), "goto"); Keywords.Add(Untr("mo_Si"), "if"); Keywords.Add(Untr("da_ma_ru"), "implicit"); Keywords.Add(Untr("u_tSi"), "in"); // out so_to Keywords.Add(Untr("to_to_no_i"), "int"); // uint u_to_to_no_e Keywords.Add(Untr("tseu_na_ga_ri"), "interface"); Keywords.Add(Untr("dzo_ku_seu_ru"), "is"); Keywords.Add(Untr("to_dza_seu"), "lock"); Keywords.Add(Untr("na_ga"), "long"); // short mi_dZi_ka ulong u_na_ga Keywords.Add(Untr("na_ma_e_ma"), "namespace"); Keywords.Add(Untr("a_ta_ra_Si_i"), "new"); Keywords.Add(Untr("na_Si"), "null"); Keywords.Add(Untr("a_i_te"), "object"); Keywords.Add(Untr("e_N_dza_N_Si"), "operator"); Keywords.Add(Untr("so_to"), "out"); Keywords.Add(Untr("u_wa_ga_ki"), "override"); Keywords.Add(Untr("Ci_ki"), "params"); Keywords.Add(Untr("wa_ta_ku_Si"), "private"); Keywords.Add(Untr("ma_mo_ru"), "protected"); Keywords.Add(Untr("o_o_ya_ke"), "public"); Keywords.Add(Untr("yo_mi_no_mi"), "readonly"); Keywords.Add(Untr("tsa_N_tSe_u"), "ref"); Keywords.Add(Untr("ka_e_se"), "return"); Keywords.Add(Untr("sa_dZi_bu_Si"), "sbyte"); Keywords.Add(Untr("mi_dZi_ka"), "short"); Keywords.Add(Untr("o_o_ki_sa"), "sizeof"); Keywords.Add(Untr("Si_dzeu_ka"), "static"); Keywords.Add(Untr("dZi_na_ra_be"), "string"); Keywords.Add(Untr("ka_ra_ku_ri"), "struct"); Keywords.Add(Untr("ki_ri_ka_e"), "switch"); Keywords.Add(Untr("ko_re"), "this"); Keywords.Add(Untr("na_ge_ru"), "throw"); Keywords.Add(Untr("ha_i"), "true"); Keywords.Add(Untr("ta_me_seu"), "try"); Keywords.Add(Untr("ka_ta"), "typeof"); Keywords.Add(Untr("u_to_to_no_e"), "uint"); Keywords.Add(Untr("u_na_ga"), "ulong"); Keywords.Add(Untr("u_mi_dZi_ka"), "ushort"); Keywords.Add(Untr("tseu_ka_u"), "using"); Keywords.Add(Untr("ka_ri_o_mo_i"), "virtual"); Keywords.Add(Untr("mu_na_Si"), "void"); Keywords.Add(Untr("no_to_ki"), "while"); } |
|
public static void SetupSymbols()
{ Symbols.Add(Untr0("…"), "_"); Symbols.Add(Untr0("・"), "."); Symbols.Add(Untr0(":"), ":"); Symbols.Add(Untr0(";"), ";"); Symbols.Add(Untr0("、"), ","); Symbols.Add(Untr0("←"), "="); Symbols.Add(Untr0("="), "=="); Symbols.Add(Untr0("≠"), "!="); Symbols.Add(Untr0("<"), "<"); Symbols.Add(Untr0(">"), ">"); Symbols.Add(Untr0("≦"), "<="); Symbols.Add(Untr0("≧"), ">="); Symbols.Add(Untr0("≪"), "<<"); Symbols.Add(Untr0("≫"), ">>"); Symbols.Add(Untr0("+"), "+"); Symbols.Add(Untr0("-"), "-"); Symbols.Add(Untr0("×"), "*"); Symbols.Add(Untr0("÷"), "/"); // no ++, --, += etc supported Symbols.Add(Untr0("#"), "~"); Symbols.Add(Untr0("|"), "|"); Symbols.Add(Untr0("&"), "&"); Symbols.Add(Untr0("¬"), "!"); Symbols.Add(Untr0("∨"), "||"); Symbols.Add(Untr0("∧"), "&&"); Symbols.Add(Untr0("~"), "^"); Symbols.Add(Untr0("『"), "\""); Symbols.Add(Untr0("』"), "\""); Symbols.Add(Untr0("「"), "'"); Symbols.Add(Untr0("」"), "'"); Symbols.Add(Untr0("@"), "@"); Symbols.Add(Untr0("("), "("); Symbols.Add(Untr0(")"), ")"); Symbols.Add(Untr0("["), "["); Symbols.Add(Untr0("]"), "]"); Symbols.Add(Untr0("{"), "{"); Symbols.Add(Untr0("}"), "}"); Symbols.Add(Untr0("⇒"), "=>"); } public static void SetupChars() { Chars.Add(Untr0("a"), 'a'); Chars.Add(Untr0("hha"), 'A'); Chars.Add(Untr0("ba"), 'b'); Chars.Add(Untr0("bha"), 'B'); Chars.Add(Untr0("ca"), 'c'); Chars.Add(Untr0("cha"), 'C'); Chars.Add(Untr0("da"), 'd'); Chars.Add(Untr0("dha"), 'D'); Chars.Add(Untr0("e"), 'e'); Chars.Add(Untr0("hhe"), 'E'); Chars.Add(Untr0("fa"), 'f'); Chars.Add(Untr0("fo"), 'F'); Chars.Add(Untr0("ga"), 'g'); Chars.Add(Untr0("gha"), 'G'); Chars.Add(Untr0("ha"), 'h'); Chars.Add(Untr0("ho"), 'H'); Chars.Add(Untr0("i"), 'i'); Chars.Add(Untr0("hhi"), 'I'); Chars.Add(Untr0("ja"), 'j'); Chars.Add(Untr0("jha"), 'J'); Chars.Add(Untr0("ka"), 'k'); Chars.Add(Untr0("kha"), 'K'); Chars.Add(Untr0("ri"), 'l'); Chars.Add(Untr0("re"), 'L'); Chars.Add(Untr0("ma"), 'm'); Chars.Add(Untr0("mo"), 'M'); Chars.Add(Untr0("na"), 'n'); Chars.Add(Untr0("no"), 'N'); Chars.Add(Untr0("o"), 'o'); Chars.Add(Untr0("hho"), 'O'); Chars.Add(Untr0("pa"), 'p'); Chars.Add(Untr0("pha"), 'P'); Chars.Add(Untr0("qa"), 'q'); Chars.Add(Untr0("qha"), 'Q'); Chars.Add(Untr0("ra"), 'r'); Chars.Add(Untr0("ro"), 'R'); Chars.Add(Untr0("sa"), 's'); Chars.Add(Untr0("so"), 'S'); Chars.Add(Untr0("ta"), 't'); Chars.Add(Untr0("tha"), 'T'); Chars.Add(Untr0("u"), 'u'); Chars.Add(Untr0("hhu"), 'U'); Chars.Add(Untr0("va"), 'v'); Chars.Add(Untr0("vo"), 'V'); Chars.Add(Untr0("wa"), 'w'); Chars.Add(Untr0("hhwa"), 'W'); Chars.Add(Untr0("Sa"), 'x'); Chars.Add(Untr0("So"), 'X'); Chars.Add(Untr0("ya"), 'y'); Chars.Add(Untr0("hhya"), 'Y'); Chars.Add(Untr0("za"), 'z'); Chars.Add(Untr0("zo"), 'Z'); } |