12.1 Введение
Этот подпункт описывает процесс отображения между текстовым форматом SAOL, используя описание синтаксиса и семантику, и маркируемый поток битов.
12.2 SAOL tokenisation
Чтобы промаркировать текстовый оркестр SAOL, должны выполняться следующие шаги. Во-первых, оркестр должен быть разделен на лексические элементы, где лексический элемент является одним из следующего:
1. Знак препинания,
2. Зарезервированное слово,
3. Стандартное имя,
4. Базовое имя кода операции,
5. Базовое имя генератора звуковой таблицы,
6. Символьная константа (строка, целое число или константа с плавающей точкой),
7. Идентификатор.
Пробел может использоваться, чтобы разделить лексические элементы. Это требуется, чтобы лексически снять неоднозначность оркестра. Пробел не будет обработанным как лексический элемент оркестра. Комментарии могут использоваться в текстовом оркестре SAOL, но удаляются после лексического анализа. Комментарии не сохраняются через tokenisation/detokenisation последовательность.
После лексического анализа все идентификаторы в оркестре должны быть пронумерованы со значениями символа так, чтобы один символ был связан с определенным текстовым идентификатором. Все идентификаторы, которые эквивалентны, должны быть связаны с тем же самым символом независимо от их синтаксического контекста. Эту ассоциацию символов к идентификаторам вызывают таблицей символов.
Используя лексический анализ и таблицу символов, может быть произведено маркируемое представление оркестра. Лексический анализ сканируется в порядке, как это было представлено в текстовом представлении, и для каждого лексического элемента:
- Если элемент имеет тип (1)-(5), значение маркера берется в таблице в Приложении А.
- Если элемент будет иметь тип (6), то в зависимости от типа символьной константы должен быть произведен один из специальных маркеров 0xF1, 0xF2, 0xF3, 0xF4. Для целочисленных констант в диапазоне [0,255] маркер может быть 0xF1 или 0xF4.
- Если элемент будет иметь тип 7, то должен быть произведен специальный маркер 0xF0, и последующий элемент потока битов должен быть символом, связанным с идентификатором в таблице символов.
После того как последовательность лексических элементов, представленных в текстовом оркестре, маркируется, должен быть в конце оркестра произведен специальный маркер 0xFF.
12.3 SASL tokenisation
SASL должен маркироваться относительно определенного оркестра SAOL, так как для семантики значения символа должны соответствовать.
Чтобы маркировать файл SASL, делаются следующие шаги. Во-первых, файл SASL делится на лексические элементы, где каждый элемент является или идентификатором, зарезервированным словом, именем базового генератора звуковой таблицы, или числом. После лексического анализа каждый идентификатор должен быть связан с соответствующим числом символа из ссылки оркестра SAOL. Таким образом, для оркестра SAOL, если в оркестре есть идентификатор, эквивалентный идентификатору в счете, идентификатор в счете должен получить то же самое число символа, которое было получено в оркестре. Если в оркестре нет такого идентификатора, то любое неиспользованное число символа может быть присвоено идентификатору в счете.
Используя лексический анализ и таблицу символов, может быть произведено маркируемое представление оркестра. Каждая строка счета проводится поочередно, в порядке, представленном в текстовом представлении.