Next:1.3
Описания
Up:1
Язык программирования Zonnon
Previous:1.1
Синтаксическая нотация
ident = ( letter | "_" ) { letter | digit | "_" }.
Примеры:
X Scan Zonnon GetSymbol firstLetter
_external_package27 // подчерк обычно используется для взаимодействия
с другими языками
Примеры:
{ value }
{ public }
Спецификатор (specifier) используется для предоставления дополнительной информации, такой как тип ожидаемого объекта или его размер. Он представляет собой список чисел, заключенный в скобки { }, либо спецификацию протокола в РБНФ нотации (См. также 1.8.3).
Примеры:
var r: real{32};
i := integer(t);
{ bodypart = LEG | NECK| ARM.}
Числами являются (беззнаковые) целые и вещественные константы. Если
константа специфицирована с суффиксом H, представление является шестнадцатеричным,
иначе представление является десятичным. Вещественное число всегда содержит
десятичную точку и факультативно может содержать десятичный масштабный
множитель. Буква E означает «возвести десять в степень». Числовая константа
факультативно может завершаться модификатором ширины, имеющим вид (заключенного
в скобки) числа битов, которые должны использоваться для ее представления.
Если ширина не специфицирована, используется ее значение по умолчанию,
определенное в деталях реализации компилятора [Compiler]. Для более полной
информации о типах см. 1.9.1.
number = (integer | real) [ "{" Width "}" ].
integer = digit {digit} | digit {hexDigit} "H".
real = digit {digit} "." {digit} [ScaleFactor].
ScaleFactor = "E" ["+" | "-"] digit {digit}.
hexDigit = digit | "A" | "B" | "C" | "D" | "E" | "F".
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".
Width = ConstExpression.
Целая константа совместима как с целыми (знаковыми) типами, так и с кардинальными (беззнаковыми) типами.
Примеры:
Константа
Тип
Значение
1991
integer/cardinal
1991
0DH{8}
integer{8}cardinal{8} 13
12.3
real
12.3
4.567E8
real
456700000
0.57712566E-6{64} real{64}
0.00000057712566
Символьная константа – это литера, заключенная в одинарные (') или
двойные (") кавычки. Открывающая кавычка должна совпадать с закрывающей
и не должна быть сама литерой. Символьная константа может также обозначаться
порядковым кодом литеры в шестнадцатеричной нотации, за которым следует
литера X. Это является полезным для представления специальных литер, которые
либо не могут быть напечатаны, либо принадлежат расширенному множеству
литер.
CharConstant = '"' character '"' | "'" character "'" | digit { HexDigit
} "X".
character = letter | digit | Other.
Other = // Любая литера из алфавита, отличная от тех, которые в использовании…
Примеры:
"a" 'n' "'" '"' 20X
Строковые константы представляют собой последовательности литер,
заключенные в одинарные (') или двойные (") кавычки. Открывающая кавычка
должна совпадать с закрывающей и не должна появляться в строке. Количество
символов в строке называется ее длиной. Строка из одного символа (длины
1) может использоваться везде, где разрешено использовать символьную константу,
и наоборот. Строковая константа может присваиваться переменной типа string
(см. 6.3.1).
string = '"' { character } '"' | "'" { character } "'".
character = letter | digit | Other.
Other = // Любой символ алфавите, кроме тех, которые используются
Примеры:
"Zonnon" "Don't worry!" "x" 'hello world'
Знаки операций и разделители – это специальные литеры, пары литер
или зарезервированные слова, перечисленные ниже.
accept activity array as await begin by case const definition div do else elsif end exception exit false for if implementation implements import in is launch loop mod module new nil object of on operator or procedure receive record refines repeat return self send then to true type until var while
или целиком из прописных букв:
ACCEPT ACTIVITY ARRAY AS AWAIT BEGIN BY CASE CONST DEFINITION DIV DO
ELSE ELSIF END EXCEPTION EXIT FALSE FOR IF IMPLEMENTATION IMPLEMENTS IMPORT
IN IS LAUNCH LOOP MOD MODULE NEW NIL OBJECT OF ON OPERATOR OR PROCEDURE
RECEIVE RECORD REFINES REPEAT RETURN SELF SEND THEN TO TRUE TYPE UNTIL
VAR WHILE
Литерами ограничителями являются:
( ) [ ] { } . (точка) , (запятая) ; (точка с запятой) : (двоеточие)
.. (диапазон)
| (разделитель вариантов) ' (одинарная кавычка) " (двойная кавычка)
Предопределенными знаками операций являются:
- (унарный минус) + (унарный плюс) ~ (отрицание)
^ (унарное разыменование)
+ - * / div mod & or
:= (присваивание) = (равно) # (не равно) < <= > >= in implements
Язык Zonnon вводит понятие определенных пользователем знаков операций.
Они объявляются подобно процедурам (См. 1.4.3).
Комментарии можно вставить между любыми двумя символами в программе.
Они имеют вид произвольных последовательностей литер, заключенных в скобки
(* и *). Комментарии могут вкладываться одни в другие. Они не влияют на
смысл программы.
Next:1.3
Описания
Up:1
Язык программирования Zonnon
Previous:1.1
Синтаксическая нотация