private void LoadButton_Click(object sender, EventArgs e) { OpenFileDialog openDlg = new OpenFileDialog() { Title = "Pick a Foenix Game File to Open", Filter = "FGM (*.fgm)|*.fgm" }; if (openDlg.ShowDialog() == DialogResult.OK) { CodeTextBox.Text = File.ReadAllText(openDlg.FileName); // Check which checkboxes to check FoenixLexer fl = new FoenixLexer(CodeTextBox.Text); cbSOF.Checked = fl.GetSub("SOF_IRQ_HANDLER") != null; cbSOL.Checked = fl.GetSub("SOL_IRQ_HANDLER") != null; cbTimer0.Checked = fl.GetSub("TIMER0_IRQ_HANDLER") != null; cbTimer1.Checked = fl.GetSub("TIMER1_IRQ_HANDLER") != null; cbTimer2.Checked = fl.GetSub("TIMER2_IRQ_HANDLER") != null; cbMouse.Checked = fl.GetSub("MOUSE_IRQ_HANDLER") != null; cbKeyboard.Checked = fl.GetSub("KEYBOARD_IRQ_HANDLER") != null;; cbCollision0.Checked = fl.GetSub("STS_COL_IRQ_HANDLER") != null; cbCollision1.Checked = fl.GetSub("STT_COL_IRQ_HANDLER") != null; } }
private void WriteInterruptHandler(string filename, FoenixLexer fl, IrqType irq) { List <TokenMatch> sub = fl.GetSub(irq.ToString() + "_IRQ_HANDLER"); List <string> lines = new List <string>(); if (sub != null) { foreach (TokenMatch tm in sub) { lines.AddRange(GetTemplate(tm)); } } File.WriteAllLines(filename, lines); }
private void cbIRQ_CheckedChanged(object sender, EventArgs e) { // if the IRQ subroutine doesn't exist, add it. CheckBox cb = (CheckBox)sender; if (cb.Checked) { string irq = cb.Text.Replace("IRQ", "").Trim().ToUpper(); FoenixLexer fl = new FoenixLexer(CodeTextBox.Text); if (fl.GetSub(irq + "_IRQ_HANDLER") == null) { CodeTextBox.Text += "\r\n" + irq + "_IRQ_HANDLER\r\n" + "{\r\n" + "}\r\n"; } } }