FOnline Engine
Current master GitHub
Документация Docs/ru/reference/text-format/syntax.md

Синтаксис текстового пакета

Сгенерированный справочник. Не редактируйте его напрямую. Обновите BuildTools/TextFormatInterface.json, затем выполните python BuildTools/docs_text_format.py --write.

Индекс Синтаксис Языки Текст прототипов Runtime Проверка Канонический JSON Руководство

Исходный текстовый файл задаёт коллекцию своим именем. Каждая разобранная логическая запись задаёт Key1, Key2 и Text:

{Welcome}{}{Welcome to the wasteland.}
{QuestName}{Short}{A difficult choice}
{LongMessage}{}{First line
Second line}

Исходный .fotxt не задаёт Key3. Используйте поля $Text прототипа, когда принадлежащему прототипу ключу нужны одновременно Key2 и Key3.

Стабильный ID Правило Требование Причина Источник
text-format.syntax.entry Форма исходной записи Разобранная запись .fotxt содержит Key1, Key2 и Text в трёх полях, ограниченных фигурными скобками; коллекцию задаёт сегмент имени файла текстового пакета. LoadFromString получает коллекцию отдельно и создаёт TextPackKey из двух заданных полей ключа. Source/Common/TextPack.cpp
text-format.syntax.key-tuple Идентичность структурированного ключа Идентичность TextPackKey состоит из Collection, Key1, Key2 и Key3, каждое из которых представлено обёрткой хешированной строки. Исходные записи .fotxt оставляют Key3 пустым, а поля $Text прототипов могут заполнять Key2 и Key3. Source/Common/TextPack.h
text-format.syntax.multiline-text Многострочное значение Только третье поле может продолжаться на физических строках; объединённые строки сохраняют переводы строк до первой закрывающей фигурной скобки. Первые два вызова ExtractBraceToken запрещают многострочный ввод, а третий разрешает его. Source/Common/TextPack.cpp
text-format.syntax.comment-boundary Нет грамматики комментариев Парсер пропускает физическую строку только тогда, когда не может найти первую открывающую фигурную скобку; соглашения о комментариях являются политикой проекта, а текст комментария не должен содержать разбираемые поля в фигурных скобках. В LoadFromString нет ветки токенов комментария, и разбор начинается с первой открывающей фигурной скобки в любом месте строки. Source/Common/TextPack.cpp
text-format.syntax.empty-fields Обязательные и необязательные поля Collection и Key1 не могут быть пустыми; Key2 и Text могут быть пустыми. После извлечения всех трёх полей парсер отклоняет только пустую коллекцию или первый ключ. Source/Common/TextPack.cpp
text-format.syntax.variants Варианты повторяющегося ключа Несколько записей могут использовать один полный TextPackKey и оставаться соседними упорядоченными вариантами в отсортированном backing vector. Количество вариантов и выбор по индексу используют один binary-search range; нормализация языков не выравнивает количество дубликатов, а read paths никогда не исправляют разделяемое состояние. Source/Common/TextPack.h, Source/Tests/Test_TextPack.cpp
text-format.syntax.no-closing-brace-escape Граница закрывающей скобки Первая закрывающая фигурная скобка завершает каждое поле; в исходном формате нет escape-последовательности для литеральной закрывающей скобки внутри Text. ExtractBraceToken напрямую ищет следующую закрывающую скобку и не декодирует escape-последовательности. Source/Common/TextPack.cpp
Введите запрос.