|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.05.2012, 20:05 | #1 |
Пользователь
Регистрация: 09.02.2009
Сообщений: 35
|
Синтаксический анализатор
Нужно написать синтаксический анализатор для одного маленького фрагмента программы, т.е. проверка правильности грамматического построения предложений исходного текста программы.
Текст программы: Код:
Написать можно на любом языке. Скажите пожалуйста, сложно ли это сделать? Может кто-то поможет? Хоть чем-то. Любым фрагментам кода буду рад (но сам я знаю только object pascal). P.S анализатор только для этого конкретного кода, для этих слов, т.е. если тут нет оператора if, значит если я введу его (пусть даже корректно), то это должна быть ошибка. |
30.05.2012, 21:40 | #2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Он описан в одном журнале, если надо пиши в личку я дам ссылку. Писал я на c#
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
02.06.2012, 18:49 | #3 |
Пользователь
Регистрация: 09.02.2009
Сообщений: 35
|
Помогите пожалуйста написать программу.
|
02.06.2012, 20:02 | #4 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Я так понимаю, программа на первом этапе должна определять, идентичен ли текст, введенный пользователем, тексту, хранящемуся в качестве образца.
Это так? |
02.06.2012, 20:04 | #5 |
Пользователь
Регистрация: 09.02.2009
Сообщений: 35
|
Да, можно конечно сравнить каждый символ строки, if s[1]<>i then.... но это будет очень много ифов, не думаю что это верно, да и не определю какая ошибка, а надо выдать что-то например "; expected" и т.д
|
02.06.2012, 21:19 | #6 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
|
02.06.2012, 21:39 | #7 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
02.06.2012, 22:28 | #8 |
Пользователь
Регистрация: 09.02.2009
Сообщений: 35
|
Этот вариант не поможет, если в код добавить пробел, то будет выдавать ошибку. И там ещё много других нюансов. Нужен другой способ..
|
02.06.2012, 22:37 | #9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
В моем варианте идет сканирование не по символам, а по лексемам. Символами быстрей, но и писать дольше.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
02.06.2012, 22:59 | #10 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Просто текст между чтением из поля ввода и подачей на вход анализатора нужно немного преобразовать. В частности, удалить лишние пробелы, концы строк и т.п. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
синтаксический анализатор(LL) | Legato | Общие вопросы Delphi | 2 | 25.12.2011 18:29 |
Синтаксический анализатор | Lisёноk | Помощь студентам | 2 | 12.12.2011 09:51 |
Синтаксический анализатор | Jeka57 | Помощь студентам | 1 | 05.06.2011 22:47 |
Синтаксический анализатор | Ita | Фриланс | 0 | 29.03.2011 01:37 |
Синтаксический анализатор | Douglas | Помощь студентам | 0 | 28.12.2010 18:01 |