|
Welcome! Run-Time Systems |
Язык Start-RTS+ & Компилятор Start-RTS+ РОСПАТЕНТ N 2004610440 на главную |
Общий раздел |
В разделе описываются базовые конструкции языка Start-RTS+:
Глобальные переменные в языке отсутстуют. Область видимости переменных ограничивается пределами функции. Глобальную видимость имеют:
|
Типы данных |
Размер(байт) |
Диапазон значений |
char |
1 |
0 - 255 |
chau |
2 |
0 - 65535 |
oint |
2 |
-32768 - 32767 |
dint |
4 |
-2147483648 - 2147483647 |
qint |
8 |
-2147483648*4294967296 - 2147483648*4294967296-1 |
oflt |
4 |
-3.4Е-38 - 3.4Е+38 7 цифр |
dflt |
8 |
-1.7Е-308 - 1.7Е+308 15 цифр |
curr |
8 |
-9.000.000.000.000,00 - 9.000.000.000.000,00 |
date |
4 |
-01/01/9999 - 31/12/9999 |
time |
4 |
00:00:00 - 23:59:59 |
blob |
16 |
0 - 4294967296 bytes |
otbl |
16 |
table |
Типы констант |
Константы - это конкретные числовые или строковые значения. |
decimal |
Десятичные константы определены двух типов: - целые, состоящие из цифр из диапазона 0-9; - с плавающей точкой, состоящие из цифр из диапазона 0-9 и точки, отделяющей целую часть числа от десятичной части. |
hexadecimal |
Шестнадцатеричные целые константы состоят из цифр из диапазона 0-9 и букв из диапазона A-F ( a-f ) и начинающиеся с символов 0X ( 0x ). |
literal |
Литеральные константы являются строками символов, заключенные в двойные кавычки. Разрешено использование всех печатных символов. |
Операции |
Операции служат для изменения (сравнения ) значений переменных. |
= |
присваивание |
+ |
сложение |
- |
вычитание |
* |
умножение |
/ |
деление |
% |
деление по модулю |
+= |
сложение с присваиванием |
-= |
вычитание с присваиванием |
*= |
умножение с присваиванием |
/= |
деление с присваиванием |
%= |
деление по модулю с присваиванием |
++ |
увеличение на единицу |
-- |
уменьшение на единицу |
& |
побитовая И |
| |
побитовая ИЛИ |
^ |
побитовая исключающая ИЛИ |
~ |
побитовая НЕ |
&= |
побитовая И с присваиванием |
|= |
побитовая ИЛИ с присваиванием |
^= |
побитовая исключающая ИЛИ с присваиванием |
&& |
логическая И |
|| |
логическая ИЛИ |
! |
логическая НЕ |
> |
больше, чем |
< |
меньше, чем |
!= |
не равно |
== |
равно |
<= |
меньше или равно |
>= |
больше или равно |
<< |
сдвиг влево |
>> |
сдвиг вправо |
<<= |
сдвиг влево с присваиванием |
>>= |
сдвиг вправо с присваиванием |
? |
условная |
Операторы |
Операторы определяют поток управления выполнением кода функции. При отсутствии заданных операторов перехода и выбора, операторы выполняются последовательно, в порядке их следования в исходном коде функции. Оператору можно присвоить метку, в которую при необходимости можно передать управление оператором безусловного перехода goto. metka: statement Любое выражение, за которым следует точка с запятой ( ; ) образует оператор-выражение expression; |
do |
do statement while ( condition_expr ); Пока condition_expr не равно 0 будет выполняться statement. |
for |
for ( [ initialize_expr ]; [ condition_expr ]; [ iteration_expr ] ) statement Пока condition_expr не равно 0 будет выполняться statement. |
if...else |
if ( condition_expr ) statement1 else \ optional statement2 / Если condition_expr не равно 0 будет выполняться statement1, в противном случае ничего, или statement2 при наличии else. |
while |
while ( condition_expr ) statement Пока condition_expr не равно 0 будет выполняться statement. |
switch |
switch ( expression ) { case value1: statement1; break; ........... case valueN: statementN; break; | ........... | optional default: statementD | } Позволяет передавать управление одному из нескольких операторов с меткой варианта в зависимости от значения ( expression ). |
case |
Используется для указания метки варианта в switch |
default |
Используется для указания метки варианта по умолчанию в switch |
break |
break; Используется только в операторах цикла ( do, while, for ) и с оператором ( switch ). Он прекращает выполнение оператора. |
continue |
continue; Используется только в операторах цикла ( do, while, for ). Передает управление на проверку условия циклов ( do, while ), либо на выражение инкремента цикла ( for ). |
goto |
goto metka; Передает управление оператору, имеющему указанную метку, которая должна находиться в пределах той же функции. |
return |
return; return expr; Прекращает выполнение функции и выполняет возврат в вызвавшую функцию, возвращая, если задано expr. |
include |
include "id_file"; Подключает файл кода для компиляции. |
Комментарии |
Комментарии ограничивают фрагменты текста в коде, исключаемые из анализа компилятором. |
// |
Действует с момента появления до конца текущей строки. |
/* */ |
/* - начало комментария текст внутри комментария компилятором не анализируется */ - конец комментария |
Разделители |
Типы разделителей |
blank |
Пробелы, символы горизонтальной и вертикальной табуляции, символы начала строки ( LF ) и возврата каретки ( CR ). |
[ ] |
Используется при работе с массивами и их элементами. |
( ) |
Используется в выражениях и функциях. |
{ } |
Используется в составных операторах. |
. |
Точка используется в константах с плавающей точкой и спецификаторах доступа к данным объектов. |
, |
Используеся в объявлениях и функциях для разделения параметров. |
: |
Завершает имя метки. |
; |
Завершает любую языковую конструкцию. |
Встроенные функции |
Встроенные функции позволяют работать без обращения к функциям библиотек и не требуют компиляции. |
open |
dint fi ( "open", char file, oint flag [, oint mode ] ); arguments: file - name of file ( variable | literal ) flag - 0x0000 read only 0x0001 write only 0x0002 read write 0x0010 write in end file 0x0020 create new file 0x0040 truncate exist file 0x0080 not inherid child process 0x0100 text file 0x0200 binary file 0x0400 exclusive open or combination across | if create new file mode - 0x0100 exec permit 0x0200 write permit 0x0400 read permit 0x0700 exec write read permit return: id_file - file handle for opened file or -1 if error. |
close |
dint fi ( "close", dint id_file ); arguments: id_file - file handle return: 0 or -1 if error. |
unlink |
dint fi ( "unlink", char file ); arguments: file - name of file ( variable | literal ) return: 0 or -1 if error. |
tell |
dint fi ( "tell", dint id_file ); arguments: id_file - file handle return: current position from the beginning of the file in bytes. |
seek |
dint fi ( "seek", dint id_file, dint offset, oint mode ); arguments: id_file - file handle offset - number bytes from position, indicated by the mode mode - 0 beginning of the file 1 current location 2 end of file return: offset in bytes of the new position from the beginning of the file in bytes or -1 if error. |
read |
dint fi ( "read", dint id_file, char buffer, dint len ); arguments: id_file - file handle buffer - receiver of data len - number of bytes for read return: number of bytes actually read or -1 if error. |
write |
dint fi ( "write", dint id_file, char buffer, dint len ); arguments: id_file - file handle buffer - source of data len - number of bytes for write return: number of bytes actually write or -1 if error. |
lock |
dint fi ( "lock", dint id_file, dint offset, dint len ); arguments: id_file - file handle offset - indicated offset from the beginning of the file len - number of bytes for lock return: 0 or -1 if error. |
unlock |
dint fi ( "unlock", dint id_file, dint offset, dint len ); arguments: id_file - file handle offset - indicated offset from the beginning of the file len - number of bytes for lock return: 0 or -1 if error. |
execw |
dint fi ( "execw", char name ); arguments: name - name of exec program and parameter return: 0 or -1 if error. |
exit |
dint fi ( "exit" ); arguments: no return: result of exit. |
list |
char fi ( "list", char string, dint number ); arguments: string - list of strings number - number of string from list return: string - result string. |
getdate |
dint fi ( "getdate" ); arguments: no return: current date from the computer. |
gettime |
dint fi ( "gettime" ); arguments: no return: current time from the computer. |
outstr |
dint fi ( "outstr", char buffer, oflt format, value ); arguments: buffer - receiver of value as string format - [-] width.param - only for float value width - width of field output param - for float - number of digits after point 01 - output of decimal integer value 02 - output of hexadecimal integer value 03 - output of string 04 - output of time as hh:mm:ss 05 - output of date as dd/mm/yy value - variable or constant return: size of buffer or -1 if error. |
inpstr |
dint fi ( "inpstr", char buffer, dint format, value ); arguments: buffer - source of value as string format - 0 - input float 1 - input of decimal integer value 2 - input of hexadecimal integer value 3 - input of string 4 - input of time as hh:mm:ss 5 - input of date as dd/mm/yy value - variable or constant return: 0 or -1 if error. |
strcat |
char fi ( "strcat", char string1, char string2 ); arguments: string1 - original string string2 - append string return: string1 - concatent string. |
strcmp |
dint fi ( "strcmp", char string1, char string2 ); arguments: string1 - first string string2 - second string return: < 0 - string1 is less than string2 = 0 - string1 is equal to string2 > 0 - string1 is greater than string2 |
strcpy |
char fi ( "strcpy", char string1, char string2 ); arguments: string1 - destination string string2 - source string return: string1 - result string. |
strcpyn |
char fi ("strcpyn", char string1, char string2, dint len ); arguments: string1 - destination string string2 - source string len - number of copy bytes from string2 return: string1 - result string. |
strlen |
dint fi ( "strlen", char string ); arguments: string - test string return: len of the string in bytes. |
strrev |
char fi ( "strrev", char string ); arguments: string - source string return: result string. |
strset |
char fi ( "strset", char string, dint ch ); arguments: string - source string return: result string, fill ch. |
strstr |
char fi ( "strset", char string1, char string2 ); arguments: string1 - source string string2 - test string return: 0 or result string, beginning with string2 within string1. |
acos |
dflt fi ( "acos", dflt value ); arguments: value - variable or constant return: arc cosine. |
cos |
dflt fi ( "cos", dflt value ); arguments: value - variable or constant return: cosine. |
exp |
dflt fi ( "exp", dflt value ); arguments: value - variable or constant return: exp with base ( e ). |
log |
dflt fi ( "log", dflt value ); arguments: value - variable or constant return: natural logarithm of value. |
log10 |
dflt fi ( "log10", dflt value ); arguments: value - variable or constant return: base-10 logarithm of value. |
max |
dflt fi ( "max", a, b ); arguments: a and b - values for compare of arithmetic type return: larger from values. |
min |
dflt fi ( "min", a, b ); arguments: a and b - values for compare of arithmetic type return: smaller from values. |
sqrt |
dflt fi ( "sqrt", dflt value ); arguments: value - variable or constant return: square root of value. |
calc |
dflt fi ( "calc", char formula ); arguments: formula - arithmetic expression return: compute value. |
e-mail:rts@rtsrts.com |
Copyright (C)RTsRTs 2000-2023 |