EnglishРусский  

   Приложение

Данный проект закрыт! Создан новый скриптовый язык с тем же именем. Всё доступно на GitHub.
Также попробуйте нашу open source кроссплатформенную программу для создания и управления скриптами.

Реклама

Инсталлятор CreateInstall
Бесплатные и коммерческие инсталляторы

Определение text функции

Специально для работы с текстовыми данными имеется команда text. Она позволяет генерировать текст любой сложности и объема.

Описание начинается с ключевого слова text, затем идут атрибуты в угловых скобках и описание параметров в круглых скобках. Обязательным является только имя text функции. Text функция не может возвращать значение. Описание атрибутов и параметров идентично описанию функций. Выводимый текст начинается с новой строки после ее описания и продолжается до конца файла или до комбинации \!.

Главным отличием text функций от функций является то, что здесь не строки встраиваются в исходный код, а исходный код встраивается в текст. Задачей text функции является вывод текста на консоль или в строку. Тип действия определяется при вызове text функции.

Вывод на консоль

Вывод на консоль осуществляется с помощью унарной операции @.
@nametextfunc( параметры)

Вывод в строку

Вывод в строку осуществляется с помощью бинарной операции @ где слева указана строка для вывода. Результат text функции будет дописываться в строку.
stemp @ nametextfunc( параметры)

Дополнительные возможности

Внутри текста действительны все команды со служебным символом что и в строке. Кроме этого имеются следующие дополнительные команды.

\!     Конец text функции. По умолчанию, text функция идет до конца файла.

\@name(...)     Вызов другой text функции. При вызове сохраняется тип текущего вывода (консоль или строка).

\{...}     Вставка блока кода. Внутри фигурных скобок вы можете размещать исходный код как в теле функции. Этот блок кода соответствует блоку кода первого уровня у функции и в нем можно описывать подфункции. Чтобы вывести строку в текущий вывод text функции из блока кода необходимо использовать операцию @"string"

text hello( uint count )
Must be \(count) strings
\{
   uint i 
   fornum i, count : @"\(i + 1) Hello, World!\n"
}Welcome to Gentee!\!

func b <main>
{
   @hello(3)  // Write to console
   @"Press any key...\n"
   getch()

   str out
   out @ hello( 5 )
   print( out )
   getch()
}

Текущий вывод

Можно получить текущую строку вывода с помощью использования this. Если this равно нулю, то значит текущий вывод осуществляется на консоль.

Смотрите также

Редактировать