| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] Синтаксический анализатор |
| Автор: Tester123 30.5.2012, 19:08 | ||
| Нужно написать синтаксический анализатор для одного маленького фрагмента программы, т.е. проверка правильности грамматического построения предложений исходного текста программы. Текст программы:
Это должно быть просто окно, куда я вставляю код и при нажатии кнопки либо выдаётся сообщение что всё отлично, либо (если я ввожу какую-то синтаксическую ошибку) говорит что возникла ошибка у указывается какого рода (хорошо бы ещё показать в каком месте, но не обязательно). Написать можно на любом языке. Скажите пожалуйста, сложно ли это сделать? Может кто-то поможет? Хоть чем-то. Любым фрагментам кода буду рад (но сам я знаю только object pascal). P.S анализатор только для этого конкретного кода, для этих слов, т.е. если тут нет оператора if, значит если я введу его (пусть даже корректно), то это должна быть ошибка. |
| Автор: wester 30.5.2012, 20:50 |
| можно регулярными выражениями если правильно понял вопрос. |
| Автор: Tester123 30.5.2012, 21:42 |
| А как это делается? |
| Автор: math64 31.5.2012, 08:15 |
| Какие изменения могут быть в коде? Если никаких - можно просто сравнить с образцом. Для написания нормального анализатора можно воспользоваться bison 'ом. Если можно воспользоваться regexp - сначала потренируйся просто на поиске в редакторе. В большинстве сред разработки, в т.ч. Visual Studio, есть флажок поиска с регулярными выражениями, в Visual Studio есть ещё подсказки как их вводить. Полученное регулярное выражение использовать в программе. |
| Автор: Tester123 31.5.2012, 21:40 |
| Что-то я не догоняю... Может кто-то помочь с написанием? |
| Автор: bsa 31.5.2012, 23:29 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: Tester123 1.6.2012, 07:23 |
| Спасибо. Для понимания, что такое синтаксический анализатор и как это понял я: Должен вводиться тот фрагмент кода, который в моём первом посте. И должно проверяется что всё синтаксически написано правильно, т.е. в моём случае, раз есть бегин, то должен быть и end, если есть открывающая скобка, должна быть и закрывающая, раз есть if, значит проверить что есть и then, проверить что всё это синтаксически правильно написано, и остальные ключевые слова тоже, пробелы, точка с запятой. Т.е. проверить на синтаксис этот кусок кода. |
| Автор: math64 1.6.2012, 09:32 |
| Значит, тебе нужен настоящий синтаксический анализатор. RegExp не поможет. Используй bison или другой подобный инструмент. |
| Автор: Tester123 1.6.2012, 17:41 |
| Я не имею представления что это... Да нужен настоящий анализатор, но только для моего кускакода, а не для всего языка программирования. Использовать можно что угодно, преподу нужен только экзешник. Но мне самому было бы интересно и на код посмотреть. Может кто-то помочь написать? |
| Автор: Tester123 2.6.2012, 17:48 |
| Помогите пожалуйста написать программу. |