示例#1
0
        /// <summary>
        /// Runs the disassembler with the provided set of arguments.
        /// </summary>
        /// <param name="options">The options provided by the user.</param>
        private static int RunDisassembler(DisassemblerOptions options)
        {
            ILogger logger      = null;
            string  logFileName = options.LogFile;

            if (!string.IsNullOrEmpty(logFileName) && !string.IsNullOrWhiteSpace(logFileName))
            {
                logger = new HybridLogger(logFileName.Trim());
            }
            else
            {
                logger = new ConsoleLogger();
            }

            var disassembler = new Disassembler();

            disassembler.Disassemble(options, logger);
            return(0);
        }
示例#2
0
        /// <summary>
        /// Runs the assembler with the provided set of arguments.
        /// </summary>
        /// <param name="options">The options provided by the user.</param>
        private static int RunAssembler(AssemblerOptions options)
        {
            ILogger logger      = null;
            string  logFileName = options.LogFile;

            if (!string.IsNullOrEmpty(logFileName) && !string.IsNullOrWhiteSpace(logFileName))
            {
                logger = new HybridLogger(logFileName.Trim());
            }
            else
            {
                logger = new ConsoleLogger();
            }

            RiscVAssembler assembler = new RiscVAssembler();

            try
            {
                assembler.Assemble(options, logger);
                if (options.RunAfterAssembly)
                {
                    string inputFile = options.InputFileNames.ElementAt(0);
                    // get the file name with no extension, in case we want intermediate files,
                    // or for our output.
                    string fileNameNoExtension = inputFile;
                    if (inputFile.Contains("."))
                    {
                        fileNameNoExtension = inputFile.Substring(0, inputFile.LastIndexOf('.'));
                    }

                    //TODO: this will def need to change if we implement more filetypes.
                    string outputFile = fileNameNoExtension + ".jef";

                    var runtimeOps = new InterpreterOptions(outputFile);
                    RunInterpreter(runtimeOps);
                }
            }
            catch (Exception)
            {
            }

            return(0);
        }