AVTOOConstants.avt

Переключить прокрутку окна
Загрузить этот исходный код

/*
    Компилятор языка программирования
    Объектно-ориентированный продвинутый векторный транслятор

    Copyright © 2021, 2024 Малик Разработчик

    Это свободная программа: вы можете перераспространять ее и/или изменять
    ее на условиях Стандартной общественной лицензии GNU в том виде,
    в каком она была опубликована Фондом свободного программного обеспечения;
    либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.

    Эта программа распространяется в надежде, что она будет полезной,
    но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
    или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Стандартной
    общественной лицензии GNU.

    Вы должны были получить копию Стандартной общественной лицензии GNU
    вместе с этой программой. Если это не так, см.
    <https://www.gnu.org/licenses/>.
*/

package ru.malik.elaborarer.avtoo.lang;

public service AVTOOConstants(Object)
{
    /*<fold ключевые слова ( Л — лексема, И — инструкция ) | Л | И | (. управление, + выражение, - временный) ссылки, операнды | примечания                                                      >*/
    public static final int LEXEMES_LENGTH    = 0x01a0; /* |   |   |                                                           | количество лексем языка                                          */
    public static final int KEYWORDS_LENGTH   = 0x0060; /* |   |   |                                                           | количество ключевых слов                                         */
    public static final int PRIVATE           = 0x0000; /* | + |   |                                                           | private                                                          */
    public static final int RESERVED_SOURCE   = 0x0001; /* |   |   |                                                           | зарезервированная видимость (равна SOURCE, если используется)    */
    public static final int SOURCE            = 0x0002; /* |   |   |                                                           | видимость по умолчанию (на уровне исходного кода)                */
    public static final int RESERVED_PACKAGE  = 0x0003; /* |   |   |                                                           | зарезервированная видимость (равна PACKAGE, если используется)   */
    public static final int PACKAGE           = 0x0004; /* | + |   |                                                           | package                                                          */
    public static final int PROTECTED         = 0x0005; /* | + |   |                                                           | protected                                                        */
    public static final int PUBLIC            = 0x0006; /* | + |   |                                                           | public                                                           */
    public static final int PUBLISHED         = 0x0007; /* | + |   |                                                           | published                                                        */
    public static final int IMPORT            = 0x0008; /* | + |   |                                                           | import                                                           */
    public static final int UNION             = 0x0009; /* | + |   |                                                           | union                                                            */
    public static final int ABSTRACT          = 0x000a; /* | + |   |                                                           | abstract                                                         */
    public static final int FINAL             = 0x000b; /* | + |   |                                                           | final                                                            */
    public static final int CLASS             = 0x000c; /* | + |   | - ClassType                                               | class                                                            */
    public static final int STRUCT            = 0x000d; /* | + |   |                                                           | struct                                                           */
    public static final int SERVICE           = 0x000e; /* | + |   |                                                           | service                                                          */
    public static final int INTERFACE         = 0x000f; /* | + |   |                                                           | interface                                                        */
    public static final int HELPER            = 0x0010; /* | + |   |                                                           | helper                                                           */
    public static final int STATIC            = 0x0012; /* | + |   |                                                           | static                                                           */
    public static final int NATIVE            = 0x0013; /* | + |   |                                                           | native                                                           */
    public static final int INTERRUPT         = 0x0014; /* | + |   |                                                           | interrupt                                                        */
    public static final int SYNCHRONIZED      = 0x0015; /* | + |   |                                                           | synchronized                                                     */
    public static final int OPERATOR          = 0x0016; /* | + |   |                                                           | operator                                                         */
    public static final int THROWS            = 0x0017; /* | + |   |                                                           | throws                                                           */
    public static final int FALSE             = 0x0018; /* |   |   |                                                           | false                                                            */
    public static final int TRUE              = 0x0019; /* |   |   |                                                           | true                                                             */
    public static final int NULL              = 0x001a; /* | + |   |                                                           | null                                                             */
    public static final int NEW               = 0x001b; /* | + |   |                                                           | new                                                              */
    public static final int SUPER             = 0x001c; /* | + |   |                                                           | super                                                            */
    public static final int THIS              = 0x001d; /* | + |   |                                                           | this                                                             */
    public static final int INSTANCEOF        = 0x001e; /* | + | + | + ClassType                                               | instanceof                                                       */
    public static final int PRIMITIVES_LENGTH = 0x0020; /* |   |   |                                                           | количество примитивных типов (LONG8 - VOID + 1)                  */
    public static final int VOID              = 0x0020; /* | + |   |                                                           | void                                                             */
    public static final int BOOLEAN           = 0x0021; /* | + |   |                                                           | boolean                                                          */
    public static final int CHAR              = 0x0022; /* | + |   |                                                           | char                                                             */
    public static final int REF               = 0x0023; /* |   |   |                                                           | объектная ссылка                                                 */
    public static final int REAL              = 0x0024; /* | + |   |                                                           | real                                                             */
    public static final int DOUBLE            = 0x0028; /* | + |   |                                                           | double                                                           */
    public static final int DOUBLE2           = 0x0029; /* | + |   |                                                           | double2                                                          */
    public static final int DOUBLE4           = 0x002a; /* | + |   |                                                           | double4                                                          */
    public static final int DOUBLE8           = 0x002b; /* | + |   |                                                           | double8                                                          */
    public static final int FLOAT             = 0x002c; /* | + |   |                                                           | float                                                            */
    public static final int FLOAT2            = 0x002d; /* | + |   |                                                           | float2                                                           */
    public static final int FLOAT4            = 0x002e; /* | + |   |                                                           | float4                                                           */
    public static final int FLOAT8            = 0x002f; /* | + |   |                                                           | float8                                                           */
    public static final int BYTE              = 0x0030; /* | + |   |                                                           | byte                                                             */
    public static final int BYTE2             = 0x0031; /* | + |   |                                                           | byte2                                                            */
    public static final int BYTE4             = 0x0032; /* | + |   |                                                           | byte4                                                            */
    public static final int BYTE8             = 0x0033; /* | + |   |                                                           | byte8                                                            */
    public static final int SHORT             = 0x0034; /* | + |   |                                                           | short                                                            */
    public static final int SHORT2            = 0x0035; /* | + |   |                                                           | short2                                                           */
    public static final int SHORT4            = 0x0036; /* | + |   |                                                           | short4                                                           */
    public static final int SHORT8            = 0x0037; /* | + |   |                                                           | short8                                                           */
    public static final int INT               = 0x0038; /* | + |   |                                                           | int                                                              */
    public static final int INT2              = 0x0039; /* | + |   |                                                           | int2                                                             */
    public static final int INT4              = 0x003a; /* | + |   |                                                           | int4                                                             */
    public static final int INT8              = 0x003b; /* | + |   |                                                           | int8                                                             */
    public static final int LONG              = 0x003c; /* | + |   |                                                           | long                                                             */
    public static final int LONG2             = 0x003d; /* | + |   |                                                           | long2                                                            */
    public static final int LONG4             = 0x003e; /* | + |   |                                                           | long4                                                            */
    public static final int LONG8             = 0x003f; /* | + |   |                                                           | long8                                                            */
    public static final int WITH              = 0x0040; /* | + |   |                                                           | with                                                             */
    public static final int IF                = 0x0041; /* | + |   | .                                                         | if                                                               */
    public static final int ELSE              = 0x0042; /* | + |   |                                                           | else                                                             */
    public static final int SWITCH            = 0x0043; /* | + |   | .                                                         | switch                                                           */
    public static final int BRANCH            = 0x0044; /* |   | + | .                                                         | ветвление, используемое управляющей конструкцией switch          */
    public static final int CASE              = 0x0045; /* | + |   | . Int(значение метки)                                     | case                                                             */
    public static final int DEFAULT           = 0x0046; /* | + |   | .                                                         | default                                                          */
    public static final int LABEL             = 0x0047; /* |   |   | . String(название метки)                                  | <метка>:                                                         */
    public static final int DO                = 0x0048; /* | + |   | .                                                         | do                                                               */
    public static final int FOR               = 0x0049; /* | + |   | .                                                         | for                                                              */
    public static final int WHILE             = 0x004a; /* | + |   | .                                                         | while                                                            */
    public static final int BLOCK             = 0x004b; /* |   |   | .                                                         | { … }                                                            */
    public static final int JUMP              = 0x004c; /* |   | + | .                                                         | инструкция ассемблера jmp                                        */
    public static final int BREAK             = 0x004d; /* | + |   | . Node(целевой DO, FOR, WHILE, SWITCH или LABEL)          | break                                                            */
    public static final int CONTINUE          = 0x004e; /* | + |   | . Node(целевой DO, FOR или WHILE)                         | continue                                                         */
    public static final int RETURN            = 0x004f; /* | + | + | .                                                         | return                                                           */
    public static final int THROW             = 0x0050; /* | + | + | . ClassType(тип Throwable)                                | throw                                                            */
    public static final int BOUND             = 0x0051; /* |   | + | .                                                         | начало или конец блока try (берётся из двоичного исходного кода) */
    public static final int BEGIN             = 0x0052; /* |   | + | .                                                         | начало блока try                                                 */
    public static final int END               = 0x0053; /* |   | + | .                                                         | конец блока try                                                  */
    public static final int TRY               = 0x0054; /* | + |   | .                                                         | try                                                              */
    public static final int CATCH             = 0x0055; /* | + |   | . ClassType(тип Throwable)                                | catch                                                            */
    public static final int FINALLY           = 0x0056; /* | + |   |                                                           | finally                                                          */
    public static final int INVOKE_FINALLY    = 0x0057; /* |   | + | . Node(целевой FINALLY_ENTER)                             | вызов блока finally                                              */
    public static final int CLINIT_TRY_LOCK   = 0x0058; /* |   | + | + ClassType(окружающий)                                   | вход в блок static                                               */
    public static final int CLINIT_UNLOCK     = 0x0059; /* |   | + | + ClassType(окружающий)                                   | выход из блока static                                            */
    public static final int FINALLY_ENTER     = 0x005a; /* |   | + | .                                                         | вход в блок finally                                              */
    public static final int FINALLY_LEAVE     = 0x005b; /* |   | + | .                                                         | выход из блока finally                                           */
    public static final int MONITOR_ENTER     = 0x005c; /* |   | + | .                                                         | вход в блок synchronized                                         */
    public static final int MONITOR_LEAVE     = 0x005d; /* |   | + | .                                                         | выход из блока synchronized                                      */
    public static final int METHOD_ENTER      = 0x005e; /* |   | + | . Int(количество элементов стака для проверки)            | вход в тело метода                                               */
    public static final int METHOD_LEAVE      = 0x005f; /* |   | + | .                                                         | выход из тела метода                                             */
    /*</fold>*/

    /*<fold управление данными  ( Л — лексема, И — инструкция ) | Л | И | (. управление, + выражение, - временный) ссылки, операнды       | примечания (W — ослабление ссылки или отброс значения)  >*/
    public static final int READ_OPERATOR          = 0x0060; /* |   |   |                                                                 | начальный код операторов чтения значения                 */
    public static final int LOAD_CONST             = 0x0060; /* |   | + | + Constant                                                      | <W> загрузка константы                                   */
    public static final int LOAD_LOCAL             = 0x0061; /* |   | + | + Local [, Type(переменной)* ]                                  | <W> загрузка локальной переменной                        */
    public static final int LOAD_INTERRUPT         = 0x0064; /* |   | + | + Method(статичный, обработчик прерываний)                      | загрузка адреса обработчика прерывания                   */
    public static final int LOAD_STATIC            = 0x0065; /* |   | + | + Field(статичный, не константа)                                | <W> загрузка глобальной переменной                       */
    public static final int READ_ELEMENT           = 0x0066; /* |   | + | + PrimitiveType(векторный) [, Constant(тип int, от 0 до 1|3|7)] | чтение элемента вектора                                  */
    public static final int READ_COMPONENT         = 0x0067; /* |   | + | + Type(компонентов массива) [, доп. операнд типа int]           | чтение компонента массива                                */
    public static final int READ_FIELD             = 0x0068; /* |   | + | + Field(инстанционный) [, доп. операнд ссылочного типа]         | чтение поля инстанции или структуры                      */
    public static final int READ_SPECIAL           = 0x0069; /* |   | + | + Property(не абстрактный) [, доп. операнд ссылочного типа]     | прямое чтение свойства                                   */
    public static final int READ_PROPERTY          = 0x006a; /* |   | + | + Property [, доп. операнд ссылочного типа]                     | косвенное чтение свойства                                */
    public static final int SWAP                   = 0x006b; /* |   | + | + Type(a, b всегда ссылочного типа)                             | обмен местами двух элементов: … a b → … b a              */
    public static final int DUP1                   = 0x006c; /* |   | + | + Type(b)                                                       | дублирование одного элемента: … a b → … a b b            */
    public static final int DUP1X1                 = 0x006d; /* |   | + | + Type(c, b всегда ссылочного типа)                             | дублирование одного элемента: … a b c → … a c b c        */
    public static final int DUP1X2                 = 0x006e; /* |   | + | + Type(d, b всегда ссылочного типа, тип c определяется по тагу) | дублирование одного элемента: … a b c d → … a d b c d    */
    public static final int DUP2                   = 0x006f; /* |   | + | + Type(c, b всегда ссылочного типа)                             | дублирование двух элементов: … a b c → … a b c b c       */
    public static final int INVOKE_STATIC          = 0x0070; /* |   | + | + Method(статичный)                                             | <W> вызов статичного метода                              */
    public static final int INVOKE_SPECIAL         = 0x0072; /* |   | + | + Callable(инстанционный, не абстрактный)                       | <W> вызов метода напрямую                                */
    public static final int INVOKE_VIRTUAL         = 0x0074; /* |   | + | + Callable(инстанционный, классовый)                            | <W> вызов виртуального метода                            */
    public static final int INVOKE_SERVICE         = 0x0076; /* |   | + | + Callable(инстанционный, сервисный)                            | <W> вызов сервисного метода                              */
    public static final int NEW_VECTOR             = 0x0078; /* |   | + | + PrimitiveType(векторный)                                      | создание значения векторного типа                        */
    public static final int NEW_ARRAY              = 0x0079; /* |   | + | + ArrayType, Constant(тип int)                                  | создание одномерного массива фиксированной длины         */
    public static final int NEW_ARRAY_MONO         = 0x007a; /* |   | + | + ArrayType                                                     | создание одномерного массива                             */
    public static final int NEW_ARRAY_MULTI        = 0x007b; /* |   | + | + ArrayType                                                     | создание многомерного массива                            */
    public static final int NEW_INSTANCE           = 0x007c; /* |   | + | + ClassType(не массив)                                          | создание инстанции                                       */
    public static final int NOP                    = 0x007f; /* |   | + | +                                                               | отсутствие операции                                      */
    public static final int INC_LOCAL              = 0x0080; /* | + | + | + Local(числовой тип) [, Type(переменной)* ]                    | ++ инкремент локальной переменной                        */
    public static final int DEC_LOCAL              = 0x0081; /* | + | + | + Local(числовой тип) [, Type(переменной)* ]                    | -- декремент локальной переменной                        */
    public static final int INC_PRED_LOAD_LOCAL    = 0x0084; /* |   | + | + Local(числовой тип) [, Type(переменной)* ]                    | инкремент и последующая загрузка локальной переменной    */
    public static final int DEC_PRED_LOAD_LOCAL    = 0x0085; /* |   | + | + Local(числовой тип) [, Type(переменной)* ]                    | декремент и последующая загрузка локальной переменной    */
    public static final int INC_POST_LOAD_LOCAL    = 0x0086; /* |   | + | + Local(числовой тип) [, Type(переменной)* ]                    | загрузка и последующий инкремент локальной переменной    */
    public static final int DEC_POST_LOAD_LOCAL    = 0x0087; /* |   | + | + Local(числовой тип) [, Type(переменной)* ]                    | загрузка и последующий декремент локальной переменной    */
    public static final int CAST_TO                = 0x0088; /* |   | + | + Type(новый), Type(исходный)                                   | преобразование числового типа или проверка ссылочного    */
    public static final int BOOL_NOT               = 0x0090; /* | + |   | +                                                               | !                                                        */
    public static final int BOOL_AND               = 0x0091; /* | + |   | +                                                               | &&                                                       */
    public static final int BOOL_OR                = 0x0092; /* | + |   | +                                                               | ||                                                       */
    public static final int BOOL_COND              = 0x0093; /* |   |   | +                                                               | ?:                                                       */
    public static final int REF_EQ                 = 0x0094; /* |   | + | + [доп. операнд ссылочного типа]                                | <W> проверка равенства двух объектных ссылок             */
    public static final int REF_NE                 = 0x0095; /* |   | + | + [доп. операнд ссылочного типа]                                | <W> проверка неравенства двух объектных ссылок           */
    public static final int REF_IS_NULL            = 0x0096; /* |   | + | +                                                               | <W> проверка равенства объектной ссылки нулевой ссылке   */
    public static final int REF_IS_OBJECT          = 0x0097; /* |   | + | +                                                               | <W> проверка неравенства объектной ссылки нулевой ссылке */
    public static final int TEST_EQZ               = 0x0098; /* |   | + | + PrimitiveType(тип long) [, доп. операнд типа long]            | (a & b) == 0                                             */
    public static final int TEST_NEZ               = 0x0099; /* |   | + | + PrimitiveType(тип long) [, доп. операнд типа long]            | (a & b) != 0                                             */
    public static final int O_BIT_NOT              = 0x00a0; /* | + | + | + PrimitiveType                                                 | ~                                                        */
    public static final int O_BIT_AND              = 0x00a1; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | &                                                        */
    public static final int O_BIT_OR               = 0x00a2; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |                                                        */
    public static final int O_BIT_XOR              = 0x00a3; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | ^                                                        */
    public static final int O_SCAL_POS             = 0x00a4; /* |   |   |                                                                 | + (унарный)                                              */
    public static final int O_SCAL_NEG             = 0x00a5; /* |   | + | + PrimitiveType                                                 | - (унарный)                                              */
    public static final int O_SCAL_MUL             = 0x00a6; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | *                                                        */
    public static final int O_SCAL_DIV             = 0x00a8; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | /                                                        */
    public static final int O_SCAL_DIVU            = 0x00a9; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | //                                                       */
    public static final int O_SCAL_REM             = 0x00aa; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | %                                                        */
    public static final int O_SCAL_REMU            = 0x00ab; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | %%                                                       */
    public static final int O_SCAL_ADD             = 0x00ac; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | +                                                        */
    public static final int O_SCAL_SUB             = 0x00ad; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | -                                                        */
    public static final int O_SCAL_SHR             = 0x00ae; /* | + | + | + PrimitiveType [, доп. операнд типа int]                       | >>                                                       */
    public static final int O_SCAL_SHRU            = 0x00af; /* | + | + | + PrimitiveType [, доп. операнд типа int]                       | >>>                                                      */
    public static final int O_SCAL_SHL             = 0x00b0; /* | + | + | + PrimitiveType [, доп. операнд типа int]                       | <<                                                       */
    public static final int O_SCAL_EQ              = 0x00b2; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | ==                                                       */
    public static final int O_SCAL_NE              = 0x00b3; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | !=                                                       */
    public static final int O_SCAL_GT              = 0x00b4; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | >                                                        */
    public static final int O_SCAL_GE              = 0x00b5; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | >=                                                       */
    public static final int O_SCAL_LT              = 0x00b6; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | <                                                        */
    public static final int O_SCAL_LE              = 0x00b7; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | <=                                                       */
    public static final int O_VECT_OPERATOR        = 0x00c0; /* |   |   |                                                                 | начальный код векторных операторов                       */
    public static final int O_VECT_LUP             = 0x00c0; /* | + | + | + PrimitiveType                                                 | ####                                                     */
    public static final int O_VECT_UUP             = 0x00c1; /* | + | + | + PrimitiveType                                                 | ^^^^                                                     */
    public static final int O_VECT_PCK             = 0x00c2; /* | + | + | + PrimitiveType                                                 | @@@@                                                     */
    public static final int O_VECT_POS             = 0x00c4; /* |   |   |                                                                 | ++++ (унарный)                                           */
    public static final int O_VECT_NEG             = 0x00c5; /* |   | + | + PrimitiveType                                                 | ---- (унарный)                                           */
    public static final int O_VECT_MUL             = 0x00c6; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | ****                                                     */
    public static final int O_VECT_DIV             = 0x00c8; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | ////                                                     */
    public static final int O_VECT_ADD             = 0x00cc; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | ++++                                                     */
    public static final int O_VECT_SUB             = 0x00cd; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | ----                                                     */
    public static final int O_VECT_SHR             = 0x00ce; /* | + | + | + PrimitiveType [, доп. операнд типа int]                       | >>>>                                                     */
    public static final int O_VECT_SHRU            = 0x00cf; /* | + | + | + PrimitiveType [, доп. операнд типа int]                       | >>>>>                                                    */
    public static final int O_VECT_SHL             = 0x00d0; /* | + | + | + PrimitiveType [, доп. операнд типа int]                       | <<<<                                                     */
    public static final int O_VECT_EQ              = 0x00d2; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |==|                                                     */
    public static final int O_VECT_NE              = 0x00d3; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |!=|                                                     */
    public static final int O_VECT_GT              = 0x00d4; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |>>|                                                     */
    public static final int O_VECT_GE              = 0x00d5; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |>=|                                                     */
    public static final int O_VECT_LT              = 0x00d6; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |<<|                                                     */
    public static final int O_VECT_LE              = 0x00d7; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |<=|                                                     */
    public static final int O_VECT_HMUL            = 0x00d8; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |**|                                                     */
    public static final int O_VECT_HMULU           = 0x00d9; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | #**#                                                     */
    public static final int O_VECT_SADD            = 0x00dc; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |++|                                                     */
    public static final int O_VECT_SADDU           = 0x00dd; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | #++#                                                     */
    public static final int O_VECT_SSUB            = 0x00de; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | |--|                                                     */
    public static final int O_VECT_SSUBU           = 0x00df; /* | + | + | + PrimitiveType [, доп. операнд примитивного типа]              | #--#                                                     */
    public static final int WRITE_OPERATOR         = 0x00e0; /* |   |   |                                                                 | начальный код операторов модифицирования значения        */
    public static final int STORE_LOCAL            = 0x00e1; /* |   | + | + Local [, Constant(тип null или int) или Type(переменной)* ]   | сохранение в локальной переменной                        */
    public static final int DECLARE_LOCAL          = 0x00e2; /* |   | + | + Local [, Constant(тип null или int) или Type(переменной)* ]   | декларирование локальной переменной                      */
    public static final int DECLARE_WITH           = 0x00e3; /* |   | + | + Local [, Constant(тип null) или Type(переменной)* ]           | декларирование локальной переменной для with             */
    public static final int STORE_STATIC           = 0x00e5; /* |   | + | + Field(статичный, не константа) [, Constant(тип null или int)] | сохранение в глобальной переменной                       */
    public static final int WRITE_COMPONENT        = 0x00e7; /* |   | + | + Type(компонентов массива)                                     | запись компонента массива                                */
    public static final int WRITE_FIELD            = 0x00e8; /* |   | + | + Field(инстанционный)                                          | запись поля инстанции или структуры                      */
    public static final int WRITE_SPECIAL          = 0x00e9; /* |   | + | + Property(не абстрактный)                                      | прямая запись свойства                                   */
    public static final int WRITE_PROPERTY         = 0x00ea; /* |   | + | + Property                                                      | косвенная запись свойства                                */
    public static final int EXCEPT_ENTER           = 0x00fb; /* |   | + | .                                                               | вход в обработчик исключений                             */
    public static final int EXCEPT_TRY             = 0x00fc; /* |   | + | . Node(целевой BEGIN), Node(целевой END)                        | описатель блока try                                      */
    public static final int EXCEPT_CATCH           = 0x00fd; /* |   | + | . Node(целевой DECLARE_LOCAL), ClassType(тип Throwable)         | описатель блока catch                                    */
    public static final int EXCEPT_FINALLY         = 0x00fe; /* |   | + | . Node(целевой FINALLY_ENTER)                                   | описатель блока finally                                  */
    public static final int EXCEPT_LEAVE           = 0x00ff; /* |   | + | .                                                               | выход из обработчика исключений                          */
    /*</fold>                                                   |   |   | * генерируется из двоичного исходного кода                      |                                                          */

    /*<fold модифицирование значений                                  | лексема | примечания                                                 >*/
    public static final int A_DELTA      = 0x0080                ; /* |         | разница между операторами чтения и модифицирования значения */
    public static final int A_BIT_AND    = A_DELTA + O_BIT_AND   ; /* |    +    | &=                                                          */
    public static final int A_BIT_OR     = A_DELTA + O_BIT_OR    ; /* |    +    | |=                                                          */
    public static final int A_BIT_XOR    = A_DELTA + O_BIT_XOR   ; /* |    +    | ^=                                                          */
    public static final int A_SCAL_MUL   = A_DELTA + O_SCAL_MUL  ; /* |    +    | *=                                                          */
    public static final int A_SCAL_DIV   = A_DELTA + O_SCAL_DIV  ; /* |    +    | /=                                                          */
    public static final int A_SCAL_DIVU  = A_DELTA + O_SCAL_DIVU ; /* |    +    | //=                                                         */
    public static final int A_SCAL_REM   = A_DELTA + O_SCAL_REM  ; /* |    +    | %=                                                          */
    public static final int A_SCAL_REMU  = A_DELTA + O_SCAL_REMU ; /* |    +    | %%=                                                         */
    public static final int A_SCAL_ADD   = A_DELTA + O_SCAL_ADD  ; /* |    +    | +=                                                          */
    public static final int A_SCAL_SUB   = A_DELTA + O_SCAL_SUB  ; /* |    +    | -=                                                          */
    public static final int A_SCAL_SHR   = A_DELTA + O_SCAL_SHR  ; /* |    +    | >>=                                                         */
    public static final int A_SCAL_SHRU  = A_DELTA + O_SCAL_SHRU ; /* |    +    | >>>=                                                        */
    public static final int A_SCAL_SHL   = A_DELTA + O_SCAL_SHL  ; /* |    +    | <<=                                                         */
    public static final int A_VECT_MUL   = A_DELTA + O_VECT_MUL  ; /* |    +    | ****=                                                       */
    public static final int A_VECT_DIV   = A_DELTA + O_VECT_DIV  ; /* |    +    | ////=                                                       */
    public static final int A_VECT_ADD   = A_DELTA + O_VECT_ADD  ; /* |    +    | ++++=                                                       */
    public static final int A_VECT_SUB   = A_DELTA + O_VECT_SUB  ; /* |    +    | ----=                                                       */
    public static final int A_VECT_SHR   = A_DELTA + O_VECT_SHR  ; /* |    +    | >>>>=                                                       */
    public static final int A_VECT_SHRU  = A_DELTA + O_VECT_SHRU ; /* |    +    | >>>>>=                                                      */
    public static final int A_VECT_SHL   = A_DELTA + O_VECT_SHL  ; /* |    +    | <<<<=                                                       */
    public static final int A_VECT_GT    = A_DELTA + O_VECT_GT   ; /* |    +    | |>>|=                                                       */
    public static final int A_VECT_GE    = A_DELTA + O_VECT_GE   ; /* |    +    | |>=|=                                                       */
    public static final int A_VECT_LT    = A_DELTA + O_VECT_LT   ; /* |    +    | |<<|=                                                       */
    public static final int A_VECT_LE    = A_DELTA + O_VECT_LE   ; /* |    +    | |<=|=                                                       */
    public static final int A_VECT_EQ    = A_DELTA + O_VECT_EQ   ; /* |    +    | |==|=                                                       */
    public static final int A_VECT_NE    = A_DELTA + O_VECT_NE   ; /* |    +    | |!=|=                                                       */
    public static final int A_VECT_HMUL  = A_DELTA + O_VECT_HMUL ; /* |    +    | |**|=                                                       */
    public static final int A_VECT_HMULU = A_DELTA + O_VECT_HMULU; /* |    +    | #**#=                                                       */
    public static final int A_VECT_SADD  = A_DELTA + O_VECT_SADD ; /* |    +    | |++|=                                                       */
    public static final int A_VECT_SADDU = A_DELTA + O_VECT_SADDU; /* |    +    | #++#=                                                       */
    public static final int A_VECT_SSUB  = A_DELTA + O_VECT_SSUB ; /* |    +    | |--|=                                                       */
    public static final int A_VECT_SSUBU = A_DELTA + O_VECT_SSUBU; /* |    +    | #--#=                                                       */
    /*</fold>*/

    /*<fold реверсные операторы                                       | примечания                                               >*/
    public static final int R_DELTA      = 0x00c0                ; /* | разница между операторами чтения и реверсными операторами */
    public static final int R_BIT_AND    = R_DELTA + O_BIT_AND   ; /* | &`                                                        */
    public static final int R_BIT_OR     = R_DELTA + O_BIT_OR    ; /* | |`                                                        */
    public static final int R_BIT_XOR    = R_DELTA + O_BIT_XOR   ; /* | ^`                                                        */
    public static final int R_SCAL_MUL   = R_DELTA + O_SCAL_MUL  ; /* | *`                                                        */
    public static final int R_SCAL_DIV   = R_DELTA + O_SCAL_DIV  ; /* | /`                                                        */
    public static final int R_SCAL_DIVU  = R_DELTA + O_SCAL_DIVU ; /* | //`                                                       */
    public static final int R_SCAL_REM   = R_DELTA + O_SCAL_REM  ; /* | %`                                                        */
    public static final int R_SCAL_REMU  = R_DELTA + O_SCAL_REMU ; /* | %%`                                                       */
    public static final int R_SCAL_ADD   = R_DELTA + O_SCAL_ADD  ; /* | +`                                                        */
    public static final int R_SCAL_SUB   = R_DELTA + O_SCAL_SUB  ; /* | -`                                                        */
    public static final int R_SCAL_SHR   = R_DELTA + O_SCAL_SHR  ; /* | >>`                                                       */
    public static final int R_SCAL_SHRU  = R_DELTA + O_SCAL_SHRU ; /* | >>>`                                                      */
    public static final int R_SCAL_SHL   = R_DELTA + O_SCAL_SHL  ; /* | <<`                                                       */
    public static final int R_SCAL_GT    = R_DELTA + O_SCAL_GT   ; /* | >`                                                        */
    public static final int R_SCAL_GE    = R_DELTA + O_SCAL_GE   ; /* | >=`                                                       */
    public static final int R_SCAL_LT    = R_DELTA + O_SCAL_LT   ; /* | <`                                                        */
    public static final int R_SCAL_LE    = R_DELTA + O_SCAL_LE   ; /* | <=`                                                       */
    public static final int R_VECT_MUL   = R_DELTA + O_VECT_MUL  ; /* | ****`                                                     */
    public static final int R_VECT_DIV   = R_DELTA + O_VECT_DIV  ; /* | ////`                                                     */
    public static final int R_VECT_ADD   = R_DELTA + O_VECT_ADD  ; /* | ++++`                                                     */
    public static final int R_VECT_SUB   = R_DELTA + O_VECT_SUB  ; /* | ----`                                                     */
    public static final int R_VECT_SHR   = R_DELTA + O_VECT_SHR  ; /* | >>>>`                                                     */
    public static final int R_VECT_SHRU  = R_DELTA + O_VECT_SHRU ; /* | >>>>>`                                                    */
    public static final int R_VECT_SHL   = R_DELTA + O_VECT_SHL  ; /* | <<<<`                                                     */
    public static final int R_VECT_GT    = R_DELTA + O_VECT_GT   ; /* | |>>|`                                                     */
    public static final int R_VECT_GE    = R_DELTA + O_VECT_GE   ; /* | |>=|`                                                     */
    public static final int R_VECT_LT    = R_DELTA + O_VECT_LT   ; /* | |<<|`                                                     */
    public static final int R_VECT_LE    = R_DELTA + O_VECT_LE   ; /* | |<=|`                                                     */
    public static final int R_VECT_EQ    = R_DELTA + O_VECT_EQ   ; /* | |==|`                                                     */
    public static final int R_VECT_NE    = R_DELTA + O_VECT_NE   ; /* | |!=|`                                                     */
    public static final int R_VECT_HMUL  = R_DELTA + O_VECT_HMUL ; /* | |**|`                                                     */
    public static final int R_VECT_HMULU = R_DELTA + O_VECT_HMULU; /* | #**#`                                                     */
    public static final int R_VECT_SADD  = R_DELTA + O_VECT_SADD ; /* | |++|`                                                     */
    public static final int R_VECT_SADDU = R_DELTA + O_VECT_SADDU; /* | #++#`                                                     */
    public static final int R_VECT_SSUB  = R_DELTA + O_VECT_SSUB ; /* | |--|`                                                     */
    public static final int R_VECT_SSUBU = R_DELTA + O_VECT_SSUBU; /* | #--#`                                                     */
    /*</fold>*/

    /*<fold литералы                               примечания                           >*/
    public static final int L_NAME    = 0x0100; /* литерал – название элемента программы */
    public static final int L_STRING  = 0x0101; /* литерал – строка                      */
    public static final int L_DOC     = 0x0102; /* литерал – документация                */
    public static final int L_BOOLEAN = 0x0106; /* литерал типа boolean                  */
    public static final int L_CHAR    = 0x0107; /* литерал типа char                     */
    public static final int L_REAL    = 0x0109; /* литерал типа real                     */
    public static final int L_DOUBLE  = 0x010a; /* литерал типа double                   */
    public static final int L_FLOAT   = 0x010b; /* литерал типа float                    */
    public static final int L_BYTE    = 0x010c; /* литерал типа byte                     */
    public static final int L_SHORT   = 0x010d; /* литерал типа short                    */
    public static final int L_INT     = 0x010e; /* литерал типа int                      */
    public static final int L_LONG    = 0x010f; /* литерал типа long                     */
    /*</fold>*/

    /*<fold символы                                     примечания  >*/
    public static final int PARENTH_OPENED = 0x0110; /* (            */
    public static final int PARENTH_CLOSED = 0x0111; /* )            */
    public static final int BRACKET_OPENED = 0x0112; /* [            */
    public static final int BRACKET_CLOSED = 0x0113; /* ]            */
    public static final int CURLY_OPENED   = 0x0114; /* {            */
    public static final int CURLY_CLOSED   = 0x0115; /* }            */
    public static final int EQUALS         = 0x0118; /* =            */
    public static final int QUESTION       = 0x0119; /* ?            */
    public static final int REVERSE        = 0x011a; /* `            */
    public static final int PERIOD         = 0x011c; /* .            */
    public static final int COMMA          = 0x011d; /* ,            */
    public static final int COLON          = 0x011e; /* :            */
    public static final int SEMICOLON      = 0x011f; /* ;            */
    public static final int L_END          =     -1; /* конец лексем */
    /*</fold>*/

    /*<fold документация кода                             примечания                    >*/
    public static final int D_LEXEMES_LENGTH = 0x0170; /* количество лексем документации */
    public static final int D_TEXT           = 0x0000; /* слово или текст                */
    public static final int D_NAME           = 0x0001; /* название элемента программы    */
    public static final int D_ALINK          = 0x0002; /* @link                          */
    public static final int D_APARAM         = 0x0003; /* @param                         */
    public static final int D_ARETURN        = 0x0004; /* @return                        */
    public static final int D_ATHROWS        = 0x0005; /* @throws                        */
    public static final int D_ASINCE         = 0x0006; /* @since                         */
    public static final int D_ASEE           = 0x0007; /* @see                           */
    public static final int D_SCAL_DIVU      = 0x00a9; /* //                             */
    public static final int D_SCAL_REMU      = 0x00ab; /* %%                             */
    public static final int D_SCAL_SHR       = 0x00ae; /* >>                             */
    public static final int D_SCAL_SHRU      = 0x00af; /* >>>                            */
    public static final int D_SCAL_SHL       = 0x00b0; /* <<                             */
    public static final int D_SCAL_GE        = 0x00b3; /* >=                             */
    public static final int D_SCAL_LE        = 0x00b5; /* <=                             */
    public static final int D_SCAL_EQ        = 0x00b6; /* ==                             */
    public static final int D_SCAL_NE        = 0x00b7; /* !=                             */
    public static final int D_VECT_LUP       = 0x00c0; /* ####                           */
    public static final int D_VECT_UUP       = 0x00c1; /* ^^^^                           */
    public static final int D_VECT_PCK       = 0x00c2; /* @@@@                           */
    public static final int D_VECT_MUL       = 0x00c6; /* ****                           */
    public static final int D_VECT_DIV       = 0x00c8; /* ////                           */
    public static final int D_VECT_ADD       = 0x00cc; /* ++++                           */
    public static final int D_VECT_SUB       = 0x00cd; /* ----                           */
    public static final int D_VECT_SHR       = 0x00ce; /* >>>>                           */
    public static final int D_VECT_SHRU      = 0x00cf; /* >>>>>                          */
    public static final int D_VECT_SHL       = 0x00d0; /* <<<<                           */
    public static final int D_VECT_GT        = 0x00d2; /* |>>|                           */
    public static final int D_VECT_GE        = 0x00d3; /* |>=|                           */
    public static final int D_VECT_LT        = 0x00d4; /* |<<|                           */
    public static final int D_VECT_LE        = 0x00d5; /* |<=|                           */
    public static final int D_VECT_EQ        = 0x00d6; /* |==|                           */
    public static final int D_VECT_NE        = 0x00d7; /* |!=|                           */
    public static final int D_VECT_HMUL      = 0x00d8; /* |**|                           */
    public static final int D_VECT_HMULU     = 0x00d9; /* #**#                           */
    public static final int D_VECT_SADD      = 0x00dc; /* |++|                           */
    public static final int D_VECT_SADDU     = 0x00dd; /* #++#                           */
    public static final int D_VECT_SSUB      = 0x00de; /* |--|                           */
    public static final int D_VECT_SSUBU     = 0x00df; /* #--#                           */
    public static final int D_PARENTH_OPENED = 0x0150; /* (                              */
    public static final int D_PARENTH_CLOSED = 0x0151; /* )                              */
    public static final int D_BRACKET_OPENED = 0x0152; /* [                              */
    public static final int D_BRACKET_CLOSED = 0x0153; /* ]                              */
    public static final int D_CURLY_OPENED   = 0x0154; /* {                              */
    public static final int D_CURLY_CLOSED   = 0x0155; /* }                              */
    public static final int D_TAG_OPENED     = 0x0156; /* <                              */
    public static final int D_TAG_CLOSED     = 0x0157; /* >                              */
    public static final int D_EQUALS         = 0x0158; /* =                              */
    public static final int D_GRAVE_ACCENT   = 0x0159; /* `                              */
    public static final int D_PERIOD         = 0x015a; /* .                              */
    public static final int D_COMMA          = 0x015b; /* ,                              */
    public static final int D_EXCLAM_MARK    = 0x0160; /* !                              */
    public static final int D_VERTICAL_LINE  = 0x0161; /* |                              */
    public static final int D_AMPERSAND      = 0x0162; /* &                              */
    public static final int D_TILDE          = 0x0163; /* ~                              */
    public static final int D_POUND_SIGN     = 0x0164; /* #                              */
    public static final int D_CIRCUMFLEX_ACC = 0x0165; /* ^                              */
    public static final int D_ASTERISK       = 0x0166; /* *                              */
    public static final int D_SOLIDUS        = 0x0167; /* /                              */
    public static final int D_PERCENT        = 0x0168; /* %                              */
    public static final int D_PLUS           = 0x0169; /* +                              */
    public static final int D_MINUS          = 0x016a; /* -                              */
    public static final int D_AT             = 0x016b; /* @                              */
    public static final int D_EOL            =     -3; /* конец строки                   */
    public static final int D_EOP            =     -2; /* конец абзаца                   */
    public static final int D_END            =     -1; /* конец лексем                   */
    /*</fold>*/

    /*<fold типы лексем>*/
    public static final int LT_NONE    = 0x00;
    public static final int LT_BOOLEAN = 0x01;
    public static final int LT_CHAR    = 0x02;
    public static final int LT_BYTE    = 0x03;
    public static final int LT_SHORT   = 0x04;
    public static final int LT_INT     = 0x05;
    public static final int LT_LONG    = 0x06;
    public static final int LT_FLOAT   = 0x07;
    public static final int LT_DOUBLE  = 0x08;
    public static final int LT_REAL    = 0x09;
    public static final int LT_STRING  = 0x0a;
    /*</fold>*/

    /*<fold индексы компонентов информации о лексеме>*/
    public static final int ILINE = 0; /* индекс строки         */
    public static final int ICHAR = 1; /* индекс символа        */
    public static final int LKIND = 2; /* разновидность лексемы */
    public static final int LTYPE = 3; /* тип лексемы           */
    /*</fold>*/

    /*<fold разрядность кода>*/
    public static final int BITS32 = 32;
    public static final int BITS64 = 64;
    /*</fold>*/

    /*<fold ограничения>*/
    public static final int LIMIT_ARGUMENTS_LENGTH  =         30; /* предельное количество аргументов вызываемого члена      */
    public static final int LIMIT_DIMENSIONS_COUNT  =         99; /* предельное количество измерений массива                 */
    public static final int LIMIT_NAME_LENGTH       =        239; /* предельная длина названия элемента программы            */
    public static final int LIMIT_FIELD_LENGTH      = 0x00010000; /* предельная длина поля структуры                         */
    public static final int LIMIT_EXCEPTIONS_LENGTH = 0x20000000; /* предельное количество исключений метода в секции throws */
    public static final int LIMIT_FIELD_OFFSET      = 0x7fbfffff; /* предельное смещение поля структуры                      */
    /*</fold>*/

    /*<fold атрибуты и маски>*/
    public static final int ATTR_ABSTRACT     = 0b0000000001000; /* абстрактный                                         */
    public static final int ATTR_FINAL        = 0b0000000010000; /* финальный                                           */
    public static final int ATTR_SERVICE      = 0b0000000100000; /* сервис                                              */
    public static final int ATTR_STRUCT       = 0b0000001000000; /* структура                                           */
    public static final int ATTR_INTERFACE    = 0b0000001100000; /* протокол                                            */
    public static final int ATTR_PRIMITIVE    = 0b0000010000000; /* примитив                                            */
    public static final int ATTR_STATIC       = 0b0000100000000; /* статичный                                           */
    public static final int ATTR_NATIVE       = 0b0001000000000; /* написан на ассемблере (нет у абстрактных членов)    */
    public static final int ATTR_INTERRUPT    = 0b0010000000000; /* обработчик прерывания (нет у абстрактных методов)   */
    public static final int ATTR_SYNCHRONIZED = 0b0100000000000; /* синхронизированный (нет у абстрактных членов)       */
    public static final int ATTR_SYNTHETIC    = 0b1000000000000; /* добавлен компилятором                               */
    public static final int MASK_VISIBILITY   = 0b0000000000111; /* маска видимости                                     */
    public static final int MASK_BINDING      = 0b0000000011000; /* маска связывания                                    */
    public static final int MASK_TYPE         = 0b0000011100000; /* маска атрибутов типа                                */
    public static final int MASK_MEMBER       = 0b1111100000000; /* маска атрибутов члена                               */
    public static final int MASK_CODE         = 0b0111000000000; /* маска деталей реализации (нет у абстрактных членов) */
    public static final int MASK_ATTRIBUTES   = 0b1111111111111; /* маска всех атрибутов                                */
    /*</fold>*/

    /*<fold версия ПВТ-ОО>*/
    public static final String VERSION = "0.6";
    /*</fold>*/

    /*<fold канонические названия важных пакетов, используемых компилятором>*/
    public static final String PACKNAME_LANG  = "avt.lang";
    /*</fold>*/

    /*<fold простые названия важных типов, используемых компилятором>*/
    public static final String TYPENAME_NULL              = "null";
    public static final String TYPENAME_CLASS             = "Class";
    public static final String TYPENAME_ERROR             = "Error";
    public static final String TYPENAME_OBJECT            = "Object";
    public static final String TYPENAME_STRING            = "String";
    public static final String TYPENAME_STRUCT            = "Struct";
    public static final String TYPENAME_PACKAGE           = "Package";
    public static final String TYPENAME_THROWABLE         = "Throwable";
    public static final String TYPENAME_RUNTIME_EXCEPTION = "RuntimeException";
    /*</fold>*/

    /*<fold специальные названия особых элементов>*/
    public static final String SPECNAME_INST_INIT  = "<init>";   /* конструктор */
    public static final String SPECNAME_CLASS_INIT = "<clinit>"; /* блок static */
    public static final String SPECNAME_THIS       = "this";     /* аргумент this */
    public static final String SPECNAME_VALUE      = "value";    /* аргумент value */
    public static final String SPECNAME_INDEX      = "index";    /* переменная index */
    /*</fold>*/

    /*<fold ассемблерные названия особых элементов>*/
    public static final String FASMNAME_SYSTEM_PACKAGE = "system.package"; /* системный пакет */
    public static final String FASMNAME_INST_INIT      = "$init$";         /* конструктор */
    public static final String FASMNAME_CLASS_INIT     = "$clinit$";       /* статичный блок */
    /*</fold>*/

    /*<fold просматриваемые названия особых элементов>*/
    public static final String VIEWNAME_CLASS_INIT = "static";
    public static final String VIEWNAME_OPERATOR   = "operator\u0020";
    /*</fold>*/

    /*<fold суффиксы особых членов>*/
    public static final String MEMBER_SUFFIX_READ   = "read";
    public static final String MEMBER_SUFFIX_WRITE  = "write";
    public static final String MEMBER_SUFFIX_INDEX  = "index";
    public static final String MEMBER_SUFFIX_STORED = "stored";
    /*</fold>*/

    /*<fold типы исходного кода>*/
    public static final String TEXT_SOURCE   = "text";
    public static final String BINARY_SOURCE = "binary";
    /*</fold>*/

    public static boolean isPrimitiveKind(int kind) { return kind != REF && (kind <= REAL || kind >= DOUBLE); }
}