![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Tester123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 16.5.2012 Репутация: нет Всего: нет |
Нужно написать синтаксический анализатор для одного маленького фрагмента программы, т.е. проверка правильности грамматического построения предложений исходного текста программы.
Текст программы:
Это должно быть просто окно, куда я вставляю код и при нажатии кнопки либо выдаётся сообщение что всё отлично, либо (если я ввожу какую-то синтаксическую ошибку) говорит что возникла ошибка у указывается какого рода (хорошо бы ещё показать в каком месте, но не обязательно). Написать можно на любом языке. Скажите пожалуйста, сложно ли это сделать? Может кто-то поможет? Хоть чем-то. Любым фрагментам кода буду рад (но сам я знаю только object pascal). P.S анализатор только для этого конкретного кода, для этих слов, т.е. если тут нет оператора if, значит если я введу его (пусть даже корректно), то это должна быть ошибка. |
|||
|
||||
wester |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 2 Всего: 13 |
можно регулярными выражениями если правильно понял вопрос.
|
|||
|
||||
Tester123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 16.5.2012 Репутация: нет Всего: нет |
А как это делается?
|
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: нет Всего: 72 |
Какие изменения могут быть в коде? Если никаких - можно просто сравнить с образцом.
Для написания нормального анализатора можно воспользоваться bison 'ом. Если можно воспользоваться regexp - сначала потренируйся просто на поиске в редакторе. В большинстве сред разработки, в т.ч. Visual Studio, есть флажок поиска с регулярными выражениями, в Visual Studio есть ещё подсказки как их вводить. Полученное регулярное выражение использовать в программе. |
|||
|
||||
Tester123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 16.5.2012 Репутация: нет Всего: нет |
Что-то я не догоняю... Может кто-то помочь с написанием?
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 1 Всего: 196 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! |
|||
|
||||
Tester123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 16.5.2012 Репутация: нет Всего: нет |
Спасибо.
Для понимания, что такое синтаксический анализатор и как это понял я: Должен вводиться тот фрагмент кода, который в моём первом посте. И должно проверяется что всё синтаксически написано правильно, т.е. в моём случае, раз есть бегин, то должен быть и end, если есть открывающая скобка, должна быть и закрывающая, раз есть if, значит проверить что есть и then, проверить что всё это синтаксически правильно написано, и остальные ключевые слова тоже, пробелы, точка с запятой. Т.е. проверить на синтаксис этот кусок кода. |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: нет Всего: 72 |
Значит, тебе нужен настоящий синтаксический анализатор. RegExp не поможет. Используй bison или другой подобный инструмент.
|
|||
|
||||
Tester123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 16.5.2012 Репутация: нет Всего: нет |
Я не имею представления что это...
Да нужен настоящий анализатор, но только для моего кускакода, а не для всего языка программирования. Использовать можно что угодно, преподу нужен только экзешник. Но мне самому было бы интересно и на код посмотреть. Может кто-то помочь написать? |
|||
|
||||
Tester123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 16.5.2012 Репутация: нет Всего: нет |
Помогите пожалуйста написать программу.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |