Example #1
0
        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
        }
Example #2
0
        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
        }
Example #3
0
        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
        }