воскресенье, 10 февраля 2013 г.

таблица ln в математике

Итак, нам нужно создать массивы, в которых будут наши ключевые слова, операторы, пунктуаторы и их описание. Вы можете создать уже заполненные массивы в самой программе, но я, лично, что бы не перегружать код и упростить редактирование данных, делал выгрузку из 3х файлов и буду объяснять именно на этом примере.

Этап 1. Заполняем массивы данных

И второй, более простой способ, использование регулярных выражений. Просто, быстро и удобно. Лично я использовал библиотеку RegExpr с сайта .

При помощи оператора case. Долго, нудно и не интересно. А если серьезно, то способ слишком объемен и сложен в реализации. То есть для каждого токена Вам нужно будет составить отдельное значение для переменной. Для одних только ключевых слов придется делать 52 (!) блока проверки условия. Я молчу о проверке ошибок литералов и комментариев. Вердикт отсеиваем.

Каким же образом мы можем распарсить наш текст? Вообще метода 2:

Определимся с выбором

4) Вывести данные в таблицу.

3) Занести данные о токенах в массив и отсортировать его.

2) Распарсить заданный текст на токены и определить их классы. (Распарсить то же самое, что и разобрать, т.е. выбрать эти элементы из текста в переменные)

1) Загрузить массив данных о наших ключевых словах, операторах и пунктуаторах, так как они уникальны.

0) Изначально я бы посоветовал изучить спецификацию языка, для которого вы будете писать анализатор. Далее нам нужно:

Вроде бы задание понятно. Теперь разобьем его на подзадачи.

Ну описание, позицию и длину описывать, я думаю, не стоит.

Спецификатор описывает к какому классу относится токен. То есть, например, для токена «boolean» в таблице выведется «Keywords».

Напомню, что токен это последовательности символов в лексическом анализе в информатике, соответствующий лексеме.

Итак, давайте же рассмотрим техническое задание подробнее. Что нам требуется? А требуется нам создать анализатор, который будет разбивать заданный текст на языке Java по классам ключевым словам, идентификаторам, операторам, пунктуаторам (сепараторам) и т.п., и выводить результат работы в таблицу. Таблица будет содержать следующие столбцы:

Данный пост будет, как правило, интересен студентам, так как подобное задание было получено в качестве лабораторной работы по дисциплине «Лингвистические основы информатики».

ТЗ или о чем пойдет речь

Лексический анализатор языка Java, созданный в среде Delphi

Лексический анализатор языка Java, созданный в среде Delphi / Хабрахабр

Комментариев нет:

Отправить комментарий