Cobra: различия между версиями

Содержимое удалено Содержимое добавлено
м ключ сортировки
Ссылка на Cobra/Keywords/ct_trace; s/ - / — /.
Строка 53:
.method public hidebysig newslot virtual instance void Main() cil managed
{
// ђ §¬ҐаРазмер Є®¤ кода: 36 (0x24)
.maxstack 2
.language '3F5162F8-07C6-11D3-9053-00C04FA302A1', '994B45C4-E6E9-11D2-903F-00C04FA302A1', '5A869D0B-6611-11D3-BD2A-0000F80849BD'
Строка 169:
Модуль представляет собой последовательность из выражений или директив, заключенных в пространства имен.<br />
Модуль может начать с DocString и/или блока комментариев.<br />
Комментарии как и пробелы - могут быть размещены в любом месте модуля. В отличии от комментариев, DocString может располагаться только в определенных позициях (начало файла, первые строки class/struct/interface/enum, после method/var, ...)<br />
Отдельное выражение выделяется отступами.<br />
К выражениям относятся:<br />
* use - указатель пространства имен, содержимое которого будет использоваться текущим модулем.
* namespace - пространство имен.
* class - пользовательский(ссылка) тип объединяющий переменные других типов, методов и событий.
* struct - пользовательский типа данных, во многом схож с классом.
* interface - обеспечивает определение интерфейса.
* mixin - реализующий какое-либо чётко выделенное поведение, который может быть введен на классы по любой иерархии классов.
* enum - используется для объявления перечисления, на которые могут ссылаться другие элементы.
* extend - расширение существующего типа.
* sig (signature) - описание сигнатуры метода (аналогично делегатам в C#).
 
Пространство имен может содержать любой из вышеперечисленных пунктов (за исключением namespace). Если пространство имен не указан, код модуля построен как если бы оно было указан в глобальном пространстве имен.<br />
 
Кроме того, есть два ключа:
* assembly - указывает атрибуты для этой сборки
* '%%' (deprecated) или «@» - директивы компилятора Cobra.
 
=== Синтаксис ===
Строка 305:
Они определяют внутреннее состояние, реализацию, внешний вид, содержиание поведение, действия и ответы объявления каждого из вышеперечисленных выражений.
В настоящее время к ним относятся
* инициализаторы - определяют начальное состояние/содержание
* методы - определяют действия
* свойства - предоставляют(опосредованно) доступ к внутреннему состоянию объекта
* индексаторы - включают объекты, которые будут индексироваться аналогично массивам
* события - обеспечить уведомление объектов
* контракты - определяет формальные, точные и верифицируемые спецификации интерфейсов, которые являются частью общего интерфейса из перечисленного
 
== Комментарии ==
Строка 369:
== Операции ==
Все операции в алфавитном порядке
* {{Cobra/kw|assert}} - утверждает условие.
* {{Cobra/kw|branch}} - ветви.
* {{Cobra/kw|break}} - прервать цикл.
* {{Cobra/kw|continue}} - продолжать цикл.
* {{Cobra/kw|except}} - получение исключения.
* {{Cobra/kw|lock}} - блокировка и выполнить код в критической секции.
* {{Cobra/kw|for}} - числовое.
* {{Cobra/kw|for}} - перечисление.
* {{Cobra/kw|if}}-then-{{Cobra/kw|else}} - условное выполнение.
* {{Cobra/kw|ignore}} - удалить обработчики событий.
* {{Cobra/kw|listen}} - указать обработчик события.
* {{Cobra/kw|pass}} - указать пустую операцию.
* {{Cobra/kw|post}} ({{Cobra/kw|while}}) - цикл, пока условие истинно. Условие в конце блока. Аналогично do-while.
* {{Cobra/kw|print}} - вывод.
* {{Cobra/kw|raise}} - вызвать событие.
* {{Cobra/kw|return}} - возвращения из метода.
* {{Cobra/kw|throw}} - генерирует исключение.
* {{Cobra/kw|trace}} - отладочная информация.
* {{Cobra/kw|try}}-{{Cobra/kw|catch}} - блок обработки исключений.
* {{Cobra/kw|using}} - блок с инициализацией и автоматической очистки IDisposable объектов. Построим для поддержки RAII в IDisposables.
* {{Cobra/kw|use}} - указать пространство имен и содержимое, которые будут использоваться в этом модуле.
* {{Cobra/kw|while}} - цикл, пока условие истинно.
* {{Cobra/kw|yield}} - результат от генератора.
* {{Cobra/kw|ct_Tracect_trace}}
 
== Выражения ==
Строка 461:
Явно тип числовых литералов может быть указан путем добавления суффикса с типом и размером (с опционально предшествующим символом '_').<br/>
Типы
* u - unsigned int
* i - signed int
* d - decimal
* f - float
 
Размер