public void RangeRule() { IPcgMemory pcg = CreatePcg(); RuleParser ruleParser = new RuleParser(pcg); ruleParser.Parse("I-A000..010->I-B000..010"); Debug.Assert(ruleParser.HasParsedOk); Debug.Assert(ruleParser.ParsedRules.Count == 11); PcgTools.Model.Common.Synth.Meta.IPatch rule = ruleParser.ParsedRules[pcg.ProgramBanks[0][10]]; // I-A010 Debug.Assert(rule == pcg.ProgramBanks[1][10]); // I-B010 }
public void BankRule() { IPcgMemory pcg = CreatePcg(); RuleParser ruleParser = new RuleParser(pcg); ruleParser.Parse("I-A->I-B"); Debug.Assert(ruleParser.HasParsedOk); Debug.Assert(ruleParser.ParsedRules.Count == pcg.ProgramBanks[0].CountPatches); PcgTools.Model.Common.Synth.Meta.IPatch rule = ruleParser.ParsedRules[pcg.ProgramBanks[0][127]]; // I-A127 Debug.Assert(rule == pcg.ProgramBanks[1][127]); // I-B127 }
public void TwoRules() { IPcgMemory pcg = CreatePcg(); pcg.Content = new byte[10000]; RuleParser ruleParser = new RuleParser(pcg); ruleParser.Parse("I-A000->I-B000\nI-A001->I-B001"); Debug.Assert(ruleParser.HasParsedOk); Debug.Assert(ruleParser.ParsedRules.Count == 2); PcgTools.Model.Common.Synth.Meta.IPatch rule = ruleParser.ParsedRules[pcg.ProgramBanks[0][0]]; // I-A000 Debug.Assert(rule == pcg.ProgramBanks[1][0]); // I-B000 rule = ruleParser.ParsedRules[pcg.ProgramBanks[0][1]]; // I-A001 Debug.Assert(rule == pcg.ProgramBanks[1][1]); // I-B001 }