Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.snto-msu.net/showflat.php?Number=7174368&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 08:24:44 2016
Кодировка: Windows-1251
Лексический анализатор, помогите пожалуйста - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
General Discussion >> Study (Archive)

Страницы: 1
Nicolle
parisienne

Рег.: 20.05.2004
Сообщений: 199
Из: SweetHomeAlabama
Рейтинг: 1
  Лексический анализатор, помогите пожалуйста
      05.02.2008 21:32
1

Вот такое задание -
Составить набор тестов для тестирования лексического анализатора, разбирающего декларации следующего вида (здесь приведен синтаксис декларации в нотации Бэкуса-Наура):
procedure <return type> <name> ([<param type> <param name>[, ...]]);
<return type>= void | int
<param type>= int | long
<name>, <param name> - идентификаторы, соответствующие требованиям java.
Результат работы лексического анализатора - заключение о том, является ли введенная строка корректной декларацией.
Результат выполнения задания - набор тестовых данных, то есть набор строк, которые необходимы для того, чтобы протестировать такой лексический анализатор. Для каждой строки должен быть указан ожидаемый результат работы программы.

Нотация понятна, не совсем понятно устройство анализатора и что он выдает на выходе
Если кто что подскажет, буду благодарна :)



Je suis malade, parfaitament malade...
DizzyDen
достаточно добр

Рег.: 04.03.2003
Сообщений: 51430
Из: http://лакалхвост
Рейтинг: 13545
  Re: Лексический анализатор, помогите пожалуйста [re: Nicolle]
      05.02.2008 21:54
 

In reply to:

устройство анализатора



Quote:


   -... И в-седьмых, наконец, - рассудительно говорил Эдик, - любому специалисту, а тем более такой авторитетной организации, должно быть ясно, товарищи, что так называемый черный ящик есть не более как термин теории информации, ничего общего не имеющий ни с черным цветом, ни с определенной формой какого бы то ни было реального предмета.



In reply to:

что он выдает на выходе



Nicolle:

Результат работы лексического анализатора - заключение о том, является ли введенная строка корректной декларацией.






If stateless paradigm is good for your code, why shouldn't it be for your country?
Joe_Bishop
Carpal Tunnel

Рег.: 05.09.2005
Сообщений: 5597
Рейтинг: 154
  Re: Лексический анализатор, помогите пожалуйста [re: Nicolle]
      05.02.2008 22:10
 

дерево должен выдавать

andpar
Carpal Tunnel

Рег.: 11.08.2005
Сообщений: 2751
Рейтинг: 5911
  Re: Лексический анализатор, помогите пожалуйста [re: Nicolle]
      05.02.2008 22:43
1

Внутреннее устройство анализатора - это не твоя забота. Ты можешь считать, что у тебя есть такой класс:
code:
class Parser { //! Функция для проверки декларации /* * \return true если declaration - правильное объявление функции */ bool CheckFunctionDeclaration(string declaration) { bool resul = // неважная для тебя проверка строки return result; } }


Соответственно, о тебя требуется написать что-то типа того:
code:
void ParserTest() { Parser p; // Здесь идут проверки правильных деклараций (явные сравнения с true и false, наверное, // лучше опустить, я здесь оставил для большей ясности) assert(p.CheckFunctionDeclaration("procedure void B();") == true); assert(p.CheckFunctionDeclaration("procedure int B(int a);") == true); // И остальные варианты: все возвращаемые типы, принимаемые типы, возможность // использования в именах подчеркиваний, чисел, русских букв и прочей поебени // возможность указания одного параметра, двух, трех и т.д. // Здесь идут проверки неправильных деклараций // Проверка того, что произвольную строку не воспринимает как декларацию assert(p.CheckFunctionDeclaration("string") == false); // Здесь ничего не возвращаем assert(p.CheckFunctionDeclaration("procedure A();") == false); // Возвращаем неправильный тип assert(p.CheckFunctionDeclaration("procedure double A();") == false); // Еще куча проверок обработки неправильных деклараций (неправильные типы, // неправильные имена, пропущеные запятые, скобки и т.д.) }





Редактировал andpar (05.02.2008 22:47)
DizzyDen
достаточно добр

Рег.: 04.03.2003
Сообщений: 51430
Из: http://лакалхвост
Рейтинг: 13545
  Re: Лексический анализатор, помогите пожалуйста [re: andpar]
      05.02.2008 22:44
1

Так сильно лучше. :)





Редактировал DizzyDen (05.02.2008 22:48)
If stateless paradigm is good for your code, why shouldn't it be for your country?
andpar
Carpal Tunnel

Рег.: 11.08.2005
Сообщений: 2751
Рейтинг: 5911
  Re: Лексический анализатор, помогите пожалуйста [re: DizzyDen]
      05.02.2008 22:45
1

Quote:

Бля, ты б хоть форматирование в каментах сделал.




Неповеришь, сделал, только все равно неподрассчитал. Щас починим

DizzyDen
достаточно добр

Рег.: 04.03.2003
Сообщений: 51430
Из: http://лакалхвост
Рейтинг: 13545
  Re: Лексический анализатор, помогите пожалуйста [re: andpar]
      05.02.2008 22:46
 

Оставь примерно шириной с кодовые строки, на любой монитор влезет.



If stateless paradigm is good for your code, why shouldn't it be for your country?
Страницы: 1

General Discussion >> Study (Archive)

Дополнительная информация
0 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  Basilio, The_Nameless_One 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в