Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Семантика целого числа при сканировании



Для целого в алгоритме предусмотрен генератор условного кода 2. Под кодом здесь понимается класс целых. Часто, при обработки целых требуется не только их указатель(код) целого числа, но и значение - int.value. Учитывая, что числовые значения (value) целого в выражении могут быть разными, при лексической обработки в этом случае необходимо каждый раз генерировать кортеж <адрес, значение>. Как только будет получен начальный адрес для первого числового символа кортежа, с этого начального адреса резервируется память в таблице символов.

Соответствующие числовые значения, которые будут храниться в адресах, определяются по следующему алгоритму.

Семантическое правило с определением атрибуты значения для целого имеет вид:

O ® dW (dW)* y1,

где

W – семантическая атрибута записи (Write) очередного цифрового символа в символьную строку S.

y1 – семантическая атрибута преобразования символьной строки в числовой эквивалент. Этой атрибутой может быть уже рассмотренная стандартная функция atoi(S), которая принимает входной формальный параметр S и возвращает значение целого n.

Такая удобная атрибутная организация семантики позволяет практически без изменения общего алгоритма работать не только с целыми, но и десятичными числовыми константами. Только вместо атрибутной библиотечной функции atoi(S) будет выступать библиотечная функция atof(S), которая возвращает числовые константы с плавающей точкой. В этом случае ветка сканера с кодом 1 будет превращена в граф (рис. 5.9):

Рис. 5.9.

Каждая ветка на графе помечена не только терминальным символом, но и процедурой записи (W) очередного терминала в SR (стек с обратной записью). Определённая таким образом строка S принимается в качестве входного формального параметра встроенной функции atof(S), которая возвращает десятичное число n – значение очередной обрабатываемой числовой константы.

Наконец, если не пользоваться стандартными библиотечными функциями, то необходимо воспользоваться методикой преобразования цепочки символов в числовой эквивалент, описанный в р.5.1.





Дата публикования: 2014-11-04; Прочитано: 278 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...