Пример #1
0
        private void ParsePrimitiveVectorMethode()
        {
            var m = RegularExpression.GetRegex(RegexEnum.ReadVectorMethodPrimitive).Match(FileToTranslate);

            while (m.Success)
            {
                foreach (var newClass in Class.Variables)
                {
                    if (newClass.Name != m.Groups["name"].Value)
                    {
                        continue;
                    }
                    if ((newClass.ObjectType == "int") & (m.Groups["methode"].Value == "readByte"))
                    {
                        newClass.ReadMethod  = "ReadSByte";
                        newClass.WriteMethod = "WriteSByte";
                        newClass.ObjectType  = "sbyte";
                    }
                    else if ((newClass.ObjectType == "uint") & (m.Groups["methode"].Value == "readByte"))
                    {
                        newClass.ReadMethod  = "ReadByte";
                        newClass.WriteMethod = "WriteByte";
                        newClass.ObjectType  = "byte";
                    }
                    else
                    {
                        newClass.ReadMethod  = ReadOrWriteMethod.GetReadMethode(m.Groups["methode"].Value, "read");
                        newClass.WriteMethod = ReadOrWriteMethod.GetWriteMethode(m.Groups["methode"].Value, "read");
                        newClass.ObjectType  = PrimitiveType.GetTypeByReadMethode(newClass.ReadMethod);
                    }
                    newClass.MethodType = ReadMethodType.VectorPrimitive;
                }
                m = m.NextMatch();
            }
        }
Пример #2
0
        private void ParseVectorFields()
        {
            var bracketOpen = Array.FindIndex(FileLines, entry => entry.Contains("function serializeAs_"));

            if (!FileLines[bracketOpen].EndsWith("{"))
            {
                bracketOpen++;
            }
            var bracketClose = Brackets[bracketOpen];
            var methodlines  = new string[bracketClose - 1 - bracketOpen];

            Array.Copy(FileLines, bracketOpen + 1, methodlines, 0, bracketClose - 1 - bracketOpen);
            var vectorFields = methodlines.Where(line => line.Trim() != "")
                               .Aggregate("", (current, line) => current + (line + (char)10));

            var m = RegularExpression.GetRegex(RegexEnum.VarVectorFieldWrite).Match(vectorFields);

            while (m.Success)
            {
                foreach (var newClass in Class.Variables)
                {
                    if (newClass.Name != m.Groups["name"].Value)
                    {
                        continue;
                    }
                    newClass.VectorFieldWrite = ReadOrWriteMethod.GetWriteMethode(m.Groups["methode"].Value, "write");
                    newClass.VectorFieldRead  = ReadVectorField.GetReadMethode(m.Groups["methode"].Value);
                }
                m = m.NextMatch();
            }
        }