Exemplo n.º 1
0
        private static void InterpretFile(MipsToBinary mips, string[] args)
        {
            bool isWithNewLines  = false;
            bool isHex           = false;
            bool isBytePartition = false;

            // file operation mode
            if (args.Length > 1)
            {
                string mipsFile = "";
                string binPath  = "";
                int    i;
                for (i = 0; i < args.Length; i++)
                {
                    if (args[i] == "-s" && i + 1 < args.Length)
                    {
                        mipsFile = args[i + 1];
                    }
                    else if (args[i] == "-o" && i + 1 < args.Length)
                    {
                        binPath = args[i + 1];
                    }
                    else if (args[i] == "-n")
                    {
                        isWithNewLines = true;
                    }
                    else if (args[i] == "-h")
                    {
                        isHex = true;
                    }
                    else if (args[i] == "-p")
                    {
                        isBytePartition = true;
                    }
                }
                if (mipsFile == "" || binPath == "")
                {
                    Console.WriteLine("Input error!");
                    return;
                }
                string input = File.ReadAllText(mipsFile);
                string binary;
                if (!isHex)
                {
                    binary = mips.GetBinaryString(input, isWithNewLines);
                }
                else
                {
                    binary = mips.GetHexString(input, isWithNewLines, isBytePartition);
                }
                File.WriteAllText(binPath, binary);
                Console.WriteLine("Done");
                return;
            }
        }