Общение

Особенности NQL-синтаксиса


Что общего у синтаксиса C и Basic? Этим общим знаменателем как раз и является синтаксис NQL. Некоторые элементы позаимствованы у Basic (например, разделение команд в одной строке двоеточиями). С другой стороны - фигурные скобки и комментарии явно указывают на родство с C. Обработка ошибок поддерживается в двух формах - можно обрабатывать прерывания по ошибке в духе On Error, а можно анализировать значения возвращаемой функции.

В язык встроены две уникальные по своему удобству возможности, в других языках не встречающиеся. Первая - это встроенное состояние, оставляемое после последней команды. Это состояние сигнализирует о том, успешно ли была выполнена команда (или был ли получен положительный результат), и принимает значения true или false. Впоследствии это значение может быть предметом исследования - так, как бы вы выполнили if:

get URL then { ... }

Такая манера выполнения может оказаться более удобной, чем постоянный опрос функций. Второй уникальной конструкцией является стек. Собственно в самом стеке ничего уникального нет. А вот то, что он встроен на уровне языка, это, конечно, сильно. Со стеком по умолчанию работают многие функции и команды, так что код становится "интуитивным". Например:

get URL: show

показывает в окне содержимое только что получtнного htpp-документа (или что уж там было получено). Стек адресуется встроенными переменными. (точка) и.. (две точки) - для указания на первый и второй сверху элементы. Встроенные функции push и pop позволяют, соответственно, получить и вставить в стек элемент - так что стеком можно управлять как явно, так и неявно, в процессе выполнения команд.



Содержание раздела