Exemple #1
0
        public void PapyrusParser_ParseInstruction()
        {
            var parser = new PapyrusAssemblyInstructionParser();
            var inst   = parser.ParseInstruction("CALLMETHOD OnEndState self ::nonevar 1 asNewState ;@line 8");

            Assert.AreEqual(PapyrusOpCodes.Callmethod, inst.GetOpCode());
            Assert.AreEqual(2, inst.GetOperandArguments().Count);
            Assert.AreEqual(3, inst.GetArguments().Count);
        }
Exemple #2
0
        public void PapyrusParser_ParseInstruction_AdditionalSpaces()
        {
            var parser = new PapyrusAssemblyInstructionParser();
            var inst   = parser.ParseInstruction("CALLMETHOD      OnEndState self    ::nonevar 1   asNewState    ;@line 8");

            Assert.AreEqual(PapyrusOpCodes.Callmethod, inst.GetOpCode());
            Assert.AreEqual(2, inst.GetOperandArguments().Count);
            Assert.IsTrue(inst.GetOperandArguments().All(j => !j.Value.Contains(" ")));
            Assert.AreEqual(3, inst.GetArguments().Count);
            Assert.IsTrue(inst.GetArguments().All(j => !j.Value.Contains(" ")));
        }
Exemple #3
0
        public void PapyrusParser_ParseInstructions_WithComments()
        {
            var parser = new PapyrusAssemblyInstructionParser();
            var inst   = parser.ParseInstructions("CALLMETHOD OnEndState self ::nonevar 1 asNewState ;@line 8" + Environment.NewLine + "CALLMETHOD OnEndState self ::nonevar 1 asNewState ;@line 8");

            for (var i = 0; i < 2; i++)
            {
                Assert.AreEqual(PapyrusOpCodes.Callmethod, inst[i].GetOpCode());
                Assert.AreEqual(2, inst[i].GetOperandArguments().Count);
                Assert.AreEqual(3, inst[i].GetArguments().Count);
            }
        }
Exemple #4
0
        public void PapyrusParser_GetAsmValues()
        {
            var parser = new PapyrusAssemblyInstructionParser();
            var values = parser.GetAsmValues("CALLMETHOD OnEndState self ::nonevar 1 asNewState ;@line 8");

            Assert.AreEqual(6, values.Count);

            values = parser.GetAsmValues("CALLMETHOD OnEndState self ::nonevar 1 \"\" ;@line 8");
            Assert.AreEqual(6, values.Count);
            Assert.AreEqual(string.Empty, values[5].Value);
            values = parser.GetAsmValues("CALLMETHOD OnEndState self ::nonevar 1 \"hello there! asNewState\" ;@line 8");
            Assert.AreEqual(6, values.Count);
            Assert.AreEqual("hello there! asNewState", values[5].Value);
        }