| Операторы | - register |
register
Описание
Регистрация пользовательского типа данных
Первый аргумент оператора указывает целое число, которому соответствует тип с данным именем. Это число далее используется в операторе sub, а так же передается в метод преобразования типов в объекте sys.
Имя, указанное во втором аргументе, используется в дальнейшем для преобразования одного типа данных в другой:
При этом кодогенератор вызывает метод to_type из модуля sys для получения кода преобразования типа.
Если имя пользовательского типа используется в выражении, то вместо него возвращается код этого типа. Например:
register(<number>, <name>)
Первый аргумент оператора указывает целое число, которому соответствует тип с данным именем. Это число далее используется в операторе sub, а так же передается в метод преобразования типов в объекте sys.
Имя, указанное во втором аргументе, используется в дальнейшем для преобразования одного типа данных в другой:
register(1, int)
...
trace(int("45"))
При этом кодогенератор вызывает метод to_type из модуля sys для получения кода преобразования типа.
Если имя пользовательского типа используется в выражении, то вместо него возвращается код этого типа. Например:
register(100, mytype)
...
var = sub('field', mytype)
...
if(expof(var) == mytype)
trace("Переменная типа mytype")
end
Зарезервированные типы
В кодогенераторе используется некоторый набор зарезервированных типов, которые представлены в таблице ниже:
Использовать встроенные типы в качестве пользовательских не рекомендуется. Кроме того, рекомендуется первый индекс пользовательского типа брать намного больше, чем количество встроенных типов, например, начиная с 100.
| Имя | Код | Описание |
| DATA_NONE | 0 | нет данных или данные типа "код" |
| DATA_INT | 1 | целочисленная константа |
| DATA_STR | 2 | строковая константа |
| DATA_REAL | 3 | действительная константа |
| DATA_ARRAY | 4 | массив (new array() или A && B) |
| DATA_OBJECT | 5 | объект (this, sys и т.д.) |
| DATA_PROC | 6 | функция |
Использовать встроенные типы в качестве пользовательских не рекомендуется. Кроме того, рекомендуется первый индекс пользовательского типа брать намного больше, чем количество встроенных типов, например, начиная с 100.
BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)
Поиск
Друзья
Администрация