Logo

Основы синтаксиса

Основы синтаксиса языка Кантор. Элементы, относящиеся к экспериментальному синтаксису, добавлены недавно и могут быть пересмотрены или отвергнуты.

Регистр символов и ключевые слова

Регистр символов в идентификаторах и ключевых словах различается. На данный момент все ключевые слова Кантора пишутся строчными буквами:
all alter and any as by case class const do else end except
external final finally for from group handle if in inherited inner
into is level memorysize new node not null of on or order out outer
outside override partial path protected public raise ref return root 
row select static then this union var when where with xor

cdecl fastcall mcall optlink pascal register safecall stdcall
syscall thiscall

Идентификаторы и экранирование

Идентификатор в Канторе — любая последовательность символов Юникода.
zero = 0;
ноль = 0;
零 = 0;
Идентификаторы, содержащие символы-разделители Юникода или являющиеся ключевыми словами Кантора, экранируются кавычками:
"равно нулю!" = 0;
"с кавычкой "" внутри" = 34;

nothing = null; // ключевое слово
"null" = "равно нулю!";

 Рекомендуемые правила именования

  • Публичные идентификаторы начинаются с заглавной буквы, защищенные и приватные — со строчной.
  • Отдельные слова в идентификаторах выделяются регистром: LongInt, planckTime.
  • Полные слова лучше сокращений, допустимы общеупотребительные сокращения: Char, Info, Param и пр.
  • Чем короче идентификатор — тем меньше его область видимости.

Комментарии

// Однострочные комментарии

/*
    Многострочные комментарии —
    на несколько строк.
*/
Несохраняемые комментарии — добавляемые отекстовщиком подсказки (предполагаются, экспериментальный синтаксис):
//- comment
/*- override */
Предметно-ориентированные комментарии — вики, HTML, RTF:
//= //вики//-комментарий

/*== Многострочный вики-комментарий ==
Будет использоваться для //документирования//.*/


//HTML-комментарий

/*<h1>Блочный HTML-комментарий</h1>
Зачем он нужен, когда есть <strong>вики</strong>?*/


//{\bRTF}-комментарий

/*{\bRTF}-комментарии {\iвообще} не нужны.
Кто их поддерживать будет?*/

Числа

Десятичные целые числа — лидирующий «+» означает знаковую константу:
a = 5478;           // беззнаковое
b = +5478; c = -25; // знаковые

twentyKB = 20K; // 20 * 1024
sizeX = 1.25K;  // 1280
// другие суффиксы — M, G, T, P, E, Z, Y
Шестнадцатиричные числа — целые положительные:
a = $ABAC;  b = 0ABACh;  // беззнаковые
c = +$ABAC; d = +0ABACh; // знаковые
Двоичные числа — целые положительные:
a = 1011b;  // беззнаковое
b = +1011b; // знаковое
Числа с плавающей запятой:
pi = 3.141592;
zeroK = -273.15;

avogadro = 6.022e23;
planckTime = 5.39106e-44;

Символы и строки

cantor = 'Georg Ferdinand Ludwig Philipp';
dontShoot = 'Don''t shoot!';

hello = 'Привет!'#CR#LF'Как дела?';
theSound = #Oslash'resund';         // Øresund
volcano = 'Eyjafjallaj'#ouml'kull'; // Eyjafjallajökull

stressMark = 'ударе'#769'ние';      // ударе́ние
byteOrderMark = #$EF#$BB#$BF;

Текст и блоки на предметно-ориентированных языках

Текст — блок без разметки:
awaitingChanges = {'
  Перемен требуют наши сердца,
  Перемен требуют наши глаза,
  В нашем смехе и в наших слезах,
  И в пульсации вен
  Перемен!
  Мы ждем перемен.
'};
Вики — наддиалект UverseWiki (полный синтаксис будет описан позже):
cantorParadigms = {=
  == Язык программирования Кантор ==
  Кантор -- гибридный язык, реализует следующие парадигмы:
  {{// dfn}}
  ##
    = //Функциональная// == Вывод типов, лямбды, замыкания и частичное применение функций.
    = //Императивная// == Переменные, процедуры.
    = //Объектно-ориентированная// == Классы, множественное наследование, обобщения.
    = //Прототипная// == Расширение и копирование объектов.
  ##
  {{//}}
=};
HTML:
simpleHTML = {<p><em>простой</em> HTML</p>};
RTF:
richText = {{{\bобогащенный} текст}};

Комментариев нет :

Отправить комментарий

Выбрав в выпадающем списке пункт «Имя/URL», можно оставить комментарий от своего имени без предварительной регистрации.