Nicolle
|
parisienne
|
|
|
|
Рег.: 20.05.2004
|
Сообщений: 199
|
Из: SweetHomeAlabama
|
Рейтинг: 1
|
|
Лексический анализатор, помогите пожалуйста
05.02.2008 21:32
|
|
|
Вот такое задание - Составить набор тестов для тестирования лексического анализатора, разбирающего декларации следующего вида (здесь приведен синтаксис декларации в нотации Бэкуса-Наура): 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
|
|
|
Внутреннее устройство анализатора - это не твоя забота. Ты можешь считать, что у тебя есть такой класс:
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
|
|
|
Так сильно лучше.
Редактировал 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
|
|
|
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? |
|