Example #1
0
 private static void add_regs(TreeNode node, Regs.Section sect)
 {
     foreach (Regs.Register reg in sect.Reglist)
     {
         node.Nodes.Add(reg.Name);
         node.Nodes[node.Nodes.Count - 1].Tag = reg;
     }
 }
Example #2
0
        static Regs.Section convert_file(string filename)
        {
            string spacename = filename;

            while (spacename.Contains("/"))
            {
                spacename = spacename.Substring(spacename.IndexOf("/") + 1, spacename.Length - spacename.IndexOf("/") - 1);
            }
            while (spacename.Contains("\\"))
            {
                spacename = spacename.Substring(spacename.IndexOf("\\") + 1, spacename.Length - spacename.IndexOf("\\") - 1);
            }

            spacename = spacename.Substring(spacename.IndexOf("_") + 1, spacename.IndexOf(".") - spacename.IndexOf("_") - 1);
            Regs.Section new_space = new Regs.Section(spacename);

            StreamReader input = new StreamReader(filename);

            while (!input.EndOfStream)
            {
                string line = input.ReadLine();

                line = line.Trim();
                if (line.StartsWith("constant"))
                {
                    line = line.Substring(8, line.Length - 8);
                    line = line.Trim();
                    string name    = line.Substring(0, line.IndexOf(" "));
                    string content = line.Substring(line.IndexOf("(") + 1, line.Length - line.IndexOf("(") - 1);
                    content = content.Substring(0, content.IndexOf(")"));
                    string[] values = content.Split(',');
                    for (int i = 0; i < values.Length; i++)
                    {
                        values[i] = values[i].Trim();
                    }

                    UInt32[] values_uint = new UInt32[5];
                    for (int i = 0; i < values_uint.Length; i++)
                    {
                        if (values[i].Contains("+"))
                        {
                            string[] parts = values[i].Split('+');
                            values_uint[i] = Convert.ToUInt32(parts[0]) + Convert.ToUInt32(parts[1]);
                        }
                        else
                        {
                            values_uint[i] = Convert.ToUInt32(values[i]);
                        }
                    }

                    new_space.Add_Register(name, values_uint[0], values_uint[1], values_uint[2], values_uint[3], values_uint[4], values[5]);
                }
            }
            input.Close();

            return(new_space);
        }