Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ParseUnit / MLADoc.doc
Скачиваний:
22
Добавлен:
31.05.2015
Размер:
388.61 Кб
Скачать
  1. Технология и средства решения учебных задач

Целью практикума является разработка учебной программы реализующий лексический анализ входной строки. Результатом анализа является последовательность (коллекция) распознанных лексем.

Для разработки лексического анализатора имеется специальный компонент FSMUnit. Его настройка на конкретную грамматику и особенности применения этой грамматики осуществляется в диалоговом режиме при проектировании учебной программы (Windows-приложения). Предполагается, что это приложение разрабатывается на Visual Basic.Net.

Построенный таким образом конечно-автоматный распознаватель может быть испытан на примерах различных входных цепочек при проектировании приложения или использован в программе. Результатом обработки входной цепочки автоматом является ответ - принадлежит ли входная строка искомому языку.

Для построения лексического анализатора используется набор конечных автоматов и коллекция лексем. Коллекция лексем является экземпляром компонента Lexemes. Использование коллекции лексем необходимо для взаимодействия со следующей фазой анализа – синтаксическим анализом. В коллекцию записывается результат работы конечного автомата.

Ниже описаны компоненты FSMUnit и Lexemes (п.п. 3.1 и 3.2) и структура транслирующей программы (п.п. 3.3).

В разделах 4 и 5 приведены примеры настройки компонента FSMUnit на грамматику и программы лексического анализа входной строки.

    1. Компонент fsmUnit

Компонент FSMUnit представляет собой элемент управления системы Microsoft Visual Studio.Net. Основное назначение компонента – диалоговое конструирование грамматики и конечного автомата для распознавания лексем, распознавание лексемы в диалоговом и программном режимах. Настройка компонента на грамматику осуществляется на этапе проектирования учебного приложения с помощью специального метода Designer. Полученные параметры настройки сохраняются в файле, путь к которому является значением свойства WorkFile. Запуск лексического анализа в составе транслирующего приложения осуществляется обращением к методу Scan. Аргумент этого метода – входная цепочка символов.

Более подробно методы и свойства компонента FSMUnit представлены в табл. 2.

Таблица 2.Интерфейсные члены компонента FSMUnit

п/п

Название

Описание

Аргументы

Результат

Scan

Метод. Запуская распознавания входной строки

Строка

Булев тип: True – если строка распознана, False – в остальных случаях.

Descriptor

Свойство. Тип – строка. Хранит дескриптор лексемы (используется при синтаксическом анализе)

Description

Свойство. Тип – строка. Хранит краткое описание лексемы.

WorkFile

Свойство. Тип – строка. Хранит полное имя файла2, который содержит настройки элемента управления для распознавания лексем.

InputString

Свойство. Тип – строка. Хранит входную строку.

    1. Класс Lexemes

Экземпляры класса Lexemes используются для хранения распознанных лексем, класс нужен для взаимодействия с процедурами синтаксического анализа.

Описание интерфейсных членов класса Lexemes представлено в табл. 3.

Таблица 3.Интерфейсные члены класса Lexemes

п/п

Метод

Описание

Аргументы

Результат

addLexeme

Добавляет лексему в коллекцию

строка-лексема, строка-дескриптор

Clear

Очищает коллекцию лексем

getCount

Возвращает количество элементов в коллекции.

целое число

getLexemByIndex

Возвращает лексему по ее номеру в коллекции.

номер лексемы, строка-лексема3, строка-дескриптор

getStringEx

Возвращает содержание коллекции в виде последовательности <лексем, дескриптор>

строка

removeLexem

Удаляет лексему из коллекции. Номер лексемы целое число.

Соседние файлы в папке ParseUnit