
- •1 Введение
- •2.1 Синтаксис языковых конструкций
- •2.1.1 Синтаксис описания переменных
- •2.1.1.1 Язык Pascal
- •2.1.1.2 Язык C/C++
- •2.1.1.3 Язык C#
- •2.1.2 Синтаксис описания записей и структур
- •2.1.2.1 Язык Pascal
- •2.1.2.2 Язык C/C++
- •2.1.2.3 Язык C#
- •2.1.3 Синтаксис описания функций, процедур и делегатов
- •2.1.3.1 Язык Pascal
- •2.1.3.2 Язык C++
- •2.1.3.3 Язык C#
- •2.2.1 Построение дерева
- •2.2.2 Лексический анализ
- •2.2.3 Работа с таблицей имен
- •2.2.4 Синтаксический анализ
- •2.2.5 Генерация кода
- •2.2.6 Оптимизация кода
- •2.3.1 Основные определения
- •2.3.2 Способы задания ДМП-автомата
- •2.3.3 Включение действий в синтаксис и алгоритм разбора
- •2.4.1 Основные определения
- •2.4.3 Программирование регулярных выражений
- •2.4.4 Включение действий и поиск ошибок
- •2.4.5 Сбалансированные определения
- •2.5.1 Составление правил грамматик
- •2.5.2 Включение действий в синтаксис
- •2.5.3 Разбор по символам и по лексемам
- •2.5.4 LL(1)-грамматики
- •2.5.4.1 Общие определения
- •2.5.4.2 Определение множеств направляющих символов
- •2.5.4.3 Построение таблицы разбора
- •2.5.4.4 Разбор цепочки по таблице
- •2.5.5 LR(1)-грамматики
- •2.5.5.1 Общие определения
- •2.5.5.2 Определение множества состояний и графа переходов
- •3.5.5.2 Построение таблицы разбора
- •2.5.5.4 Разбор цепочки по таблице
- •3 Задание на лабораторные работы
- •3.1 Лабораторная работа №1
- •3.2 Лабораторная работа №2
- •3.3 Лабораторная работа №3
- •3.4 Лабораторная работа №4
- •4 Отчет по лабораторным работам
- •Список литературы
15
Также в языке C++ конфликтной является ситуация, когда имя экзем-
пляра или типа, вложенного в структуру, совпадает с именем этой структуры: struct a {
int a;
};
Причина в том, что в классе или структуре с именем X только один член может иметь имя X – это конструктор.
Также при описании структуры можно использовать модификаторы доступа (public, protected и private), но добавлять их в синтаксис не обязательно.
2.1.2.3 Язык C#
В языке C# описание структуры может предваряться модификатором доступа. Если структура описана глобально, то доступны два модификатора – public и internal. Если структура вложенная, то еще модификатор private:
public struct a { private struct b {
...
}
}
struct c {
...
}
Если модификатор доступа опущен, то по умолчанию предполагается самый строгий модификатор (internal для глобальных и private для вложенных структур соответственно). Также, кроме вложенных структур,
структура может содержать поля – это описание переменных любого типа
(подобно примеру из п. 2.1.1.3). Глобальное описание переменных запреще-