|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.11.2011, 09:34 | #1 |
Новичок
Джуниор
Регистрация: 02.11.2011
Сообщений: 2
|
анализ описания переменных
Подскажите, в чем проблема. Программа читает файл, и должна полностью проанализировав его, выдать сообщение о корректности или о ошибке. Процедуры анализа строк работают корректно. Но при изменении исходного файла программа иногда начинает зависать. Что то упущено, но не могу разобраться. Может кто посмотрит..Буду благодарна.
В исходном файле к примеру: var a, b, c: real; d: array [1..6,6..9] of integer; s1: string; s2: string[10]; Сама программа во вложении. |
02.11.2011, 10:50 | #2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
должно быть Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 02.11.2011 в 10:54. |
|
02.11.2011, 13:48 | #3 |
Новичок
Джуниор
Регистрация: 02.11.2011
Сообщений: 2
|
Спасибо большое,буду разбираться..
|
02.11.2011, 21:43 | #4 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
У тебя главная беда в процедуре strokanalyz. Посмотри внимательно, что происходит в главном цикле, если в нее попадает строчка
[quote]s2:string[10];[/quote например. Первый вызов extract забирает лексему s2, потом вручную обрабатывается двоеточие, потом опять вызов extract забирает слово string, а вот квадратную скобку уже обрабатывать некому. И цикл будет крутиться до бесконечности - вызов extract(0) будет возвращать пустую строку, а до вызова extract(1) выполнение не доберется, потому что не будет слова array. И так зацикливаться оно будет при попадании на любую непредусмотренную лексему - я могу придумать много способов повесить эту функцию Вообще я бы советовал переписать весь код более логически структурировано, отделить лексический разбор от семантическогО etc, иначе ты замучаешься это отлаживать. Да, и не стОит так сурово пользоваться глобальными переменными ) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание меню для описания руководства пользователя | Человек Панда | Помощь студентам | 2 | 15.07.2011 00:34 |
описания алгоритма! | Patriot_14 | Помощь студентам | 8 | 15.06.2011 23:32 |
Пример описания класса окружности на С# | Kira444 | Помощь студентам | 1 | 13.01.2011 00:20 |
формат описания файлового типа | turbotrb | Помощь студентам | 1 | 17.09.2010 19:43 |
ОПЕРЕЖАЮЩИЕ ОПИСАНИЯ ПРОЦЕДУР | DRAgon™ | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 11.06.2010 21:24 |