AddError() 공개 메소드

public AddError ( string message ) : void
message string
리턴 void
예제 #1
0
        //StdOut - output
        //StdIn - input
        //StdError - errors and messages
        //0 - D, A or Doc, assemble, disassemble or doc generation
        //1 - language (assembly or disassembly only)
        //2 - disassembly mode (disassembly only)
        //3 - offset to disassemble (disassembly only)
        //4 - priority to disassemble (disassembly only)
        //5 - length to disassemble (disassembly only)
        //flags: -addEndGuards
        //       -raws:Folder or file
        //       -rawsExt:extension
        //       -output:File
        //       -input:File
        //       -error:File
        //       -docHeader:File
        //       -docFooter:File
        private static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                return;
            }

            var messageLog = new MessageLog(1000);

            //var cmd = HandleFlags(flags, messageLog);
            var cmd = new CommandLineArgs();
            var error = cmd.SetArgs(args);

            if (!error.CausedError)
            {
                try
                {
                    Run(messageLog, cmd);
                }
                catch (Exception e)
                {
                    messageLog.AddError(e.Message);
                }
            }

            if (cmd.errorFile != null)
            {
                using (var writer = new StreamWriter(cmd.errorFile))
                {
                    messageLog.WriteToStream(writer);
                }
            }
            else
            {
                messageLog.WriteToStream(Console.Error);
            }
            messageLog.Clear();
        }
예제 #2
0
        private static void Run(MessageLog messageLog, CommandLineArgs cmd)
        {
            if (stringComparer.Compare(cmd.operation, "doc") == 0)
            {
                MakeDoc(cmd.outputFile, cmd.rawsFolder, cmd.rawsExtension, cmd.isDirectory, cmd.docHeader, cmd.docFooter);
            }
            else if (stringComparer.Compare(cmd.operation, "plusplus") == 0)
            {
            #if !DEBUG
                throw new NotImplementedException();
            #endif
                LoadCodes(cmd.rawsFolder, cmd.rawsExtension, cmd.isDirectory, false);

                EACodeLanguage language;
                if (languages.TryGetValue(cmd.language, out language))
                {
                    HighlightingHelper.GetNotepadPlusPluslanguageDoc(language, cmd.outputFile);
                }
            }
            else if (stringComparer.Compare(cmd.operation, "prognotepad") == 0)
            {
                LoadCodes(cmd.rawsFolder, cmd.rawsExtension, cmd.isDirectory, false);

                HighlightingHelper.GetProgrammersNotepadlanguageDoc(languages.Values, cmd.outputFile);
            }
            else
            {
                LoadCodes(cmd.rawsFolder, cmd.rawsExtension, cmd.isDirectory, false);

                if (languages.ContainsKey(cmd.language))
                {
                    if (stringComparer.Compare(cmd.operation, "A") == 0)
                    {
                        Assemble(cmd.inputFile, cmd.outputFile, cmd.language, messageLog);
                    }
                    else if (stringComparer.Compare(cmd.operation, "D") == 0)
                    {
                        Disassemble(
                            cmd.inputFile,
                            cmd.outputFile,
                            cmd.language,
                            cmd.addEndGuards,
                            cmd.disassemblyMode.Value,
                            cmd.offset.Value,
                            cmd.priority.HasValue ? cmd.priority.Value : Priority.none,
                            cmd.size.HasValue ? cmd.size.Value : 0,
                            messageLog);
                    }
                    else messageLog.AddError("{0} is not a valid operation.", cmd.operation);
                }
                else messageLog.AddError("{0} is not a valid language", cmd.language);
            }
        }
예제 #3
0
        public MainForm()
        {
            InitializeComponent();

            this.OffsetControl.Maximum = 0x20000000;
            this.LengthControl.Maximum = 0x20000000;
            this.MinimumSize = this.Size;
            #if DEBUG
            this.KeyPreview = true;
            this.KeyDown += new KeyEventHandler(MainForm_KeyDown);
            #endif
            this.Move += new EventHandler((x, y) => FormHelpers.ClingToScreenEndges(x as Form, 20));
            this.Load += new EventHandler(MainForm_Load);

            this.assemblyBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(
                (sender, args) =>
                {
                    var messageLog = new MessageLog();
                    var tuple = args.Argument as Tuple<string, string, string>;
            #if DEBUG
                    try
                    {
            #endif
                        Core.Program.Assemble(tuple.Item1, tuple.Item2, tuple.Item3, messageLog);
            #if DEBUG
                    }
                    catch (Exception e)
                    {
                        messageLog.AddError("Exception: " + e.ToString());
                    }
            #endif
                    args.Result = messageLog;
                });
            this.assemblyBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(
                (sender, args) => PrintAll(args.Result as MessageLog));

            this.disassemblyBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(
                (sender, args) =>
                {
                    var messageLog = new MessageLog();
                    var tuple = args.Argument as Tuple<string, string, string, int, int, DisassemblyMode, bool>;

                    Priority priority;
                    if (tuple.Item6 == DisassemblyMode.Block || tuple.Item6 == DisassemblyMode.ToEnd)
                    {
                        if (!GetPriority(out priority))
                        {
                            return;
                        }
                    }
                    else priority = Priority.none;

                    try
                    {
                        Core.Program.Disassemble(tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item7,
                            tuple.Item6, tuple.Item4, priority, tuple.Item5, messageLog);
                    }
                    catch (Exception e)
                    {
                        messageLog.AddError("Exception: " + e.ToString());
                    }

                    args.Result = messageLog;
                });
            this.disassemblyBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(
                (sender, args) => PrintAll(args.Result as MessageLog));
        }