Esempio n. 1
0
        static void TestIOModule()
        {
            var errorDigest = ReadErrorDigest();
            var errorTable  = new ErrorTable(errorDigest, 59);

            var    errorFile = new StreamReader(@".\errors.txt");
            string line;

            while ((line = errorFile.ReadLine()) != null)
            {
                var lineParts = line.Split();
                var row       = int.Parse(lineParts[0]);
                var position  = int.Parse(lineParts[1]);
                var code      = int.Parse(lineParts[2]);
                errorTable.Add(row - 1, new Error {
                    Position = position, Code = code, Message = errorDigest[code]
                });
            }
            errorFile.Close();

            // Прочитать файл с исходным кодом
            var  ioModule = new IOModule(errorTable, @".\1.pas", @".\listing.txt");
            char?ch;

            while ((ch = ioModule.NextCh()) != null)
            {
                // TODO: лексический анализатор
            }
        }
        public Error AddError(int code, int row, int position)
        {
            var error = errorTable.Add(code, row, position, errorCount++);

            if (buffer == null)
            {
                WriteCurrentErrorsToListing();
            }
            return(error);
        }