EnglishРусский  

   ..

   bytecode.h

   cmdlist.c

   cmdlist.g

   cmdlist.h

   ge.h

   geasm.c

   geload.c

   gesave.c

The project is closed! You can look at a new scripting language. It is available on GitHub.
Also, try our open source cross-platform automation software.

Ads

Installer and installation software
Commercial and Freeware installers.

source\src\bytecode\bytecode.h
  1 /******************************************************************************
  2 *
  3 * Copyright (C) 2006, The Gentee Group. All rights reserved. 
  4 * This file is part of the Gentee open source project - http://www.gentee.com. 
  5 * 
  6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT"). 
  7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS 
  8 * ACCEPTANCE OF THE AGREEMENT.
  9 *
 10 * ID: bytecode 18.10.06 0.0.A.
 11 *
 12 * Author: Alexey Krivonogov ( gentee )
 13 *
 14 * Summary: The byte-code structures, defines and enums
 15 * 
 16 ******************************************************************************/
 17 
 18 /*-----------------------------------------------------------------------------
 19 *
 20 * ID: shifttype 19.10.06 0.0.A.
 21 * 
 22 * Summary: The shift type of the embedded commands. Hi - top shift Lo - cmd
 23   shift
 24 *  
 25 -----------------------------------------------------------------------------*/
 26 
 27 enum
 28 {      
 29 //  SH_TYPE,  // type
 30           //  top  cmd
 31   SHN3_1 = 1, //   -3   1    
 32   SHN2_1, //   -2   1    
 33   SHN1_2, //   -1   2
 34   SHN1_1, //   -1   1    
 35   SH0_2,  //   0    2
 36   SH0_1,  //   0    1    
 37   SH1_3,  //   1    3
 38   SH1_2,  //   1    2
 39   SH1_1,  //   1    1
 40   SH2_1,  //   2    1
 41   SH2_3,  //   2    3
 42 };
 43 
 44 /*enum
 45 {
 46  
 47    SMulII,
 48    SDivII,
 49    SModII,
 50    SLeftII,
 51    SRightII,
 52    SSignI,
 53    SLessII,
 54    SGreaterII,
 55 
 56    SMulI,           // *=
 57    SDivI,           // /=
 58    SModI,           // %=
 59    SLeftI,          // <<=
 60    SRightI,         // >>=
 61 
 62    SAddULUL,          
 63    SSubULUL,
 64    SMulULUL,
 65    SDivULUL,
 66    SModULUL,
 67    SAndULUL,
 68    SOrULUL,
 69    SXorULUL,
 70    SLeftULUL,
 71    SRightULUL,
 72    SLessULUL,
 73    SGreaterULUL,
 74    SEqULUL,
 75    SNotUL,
 76 
 77    SIncLeftUL,      // ++
 78    SIncRightUL,     // правый ++
 79    SDecLeftUL,      // --
 80    SDecRightUL,     // правый --
 81    SAddUL,          // +=
 82    SSubUL,          // -=
 83    SMulUL,          // *=
 84    SDivUL,          // /=
 85    SModUL,          // %=
 86    SAndUL,          // &=
 87    SOrUL,           // |=
 88    SXorUL,          // ^=
 89    SLeftUL,         // <<=
 90    SRightUL,        // >>=
 91 
 92    SMulLL,
 93    SDivLL,
 94    SModLL,
 95    SLeftLL,
 96    SRightLL,
 97    SSignL,
 98    SLessLL,
 99    SGreaterLL,
100 
101    SMulL,           // *=
102    SDivL,           // /=
103    SModL,           // %=
104    SLeftL,          // <<=
105    SRightL,         // >>=
106 
107    SAddFF,
108    SSubFF,
109    SMulFF,
110    SDivFF,
111    SSignF,
112    SLessFF,
113    SGreaterFF,
114    SEqFF,
115    
116    SIncLeftF,      // ++
117    SIncRightF,     // правый ++
118    SDecLeftF,      // --
119    SDecRightF,     // правый --
120    SAddF,
121    SSubF,
122    SMulF,
123    SDivF,
124    
125    SAddDD,
126    SSubDD,
127    SMulDD,
128    SDivDD,
129    SSignD,
130    SLessDD,
131    SGreaterDD,
132    SEqDD,
133    
134    SIncLeftD,      // ++
135    SIncRightD,     // правый ++
136    SDecLeftD,      // --
137    SDecRightD,     // правый --
138    SAddD,
139    SSubD,
140    SMulD,
141    SDivD,
142 
143    SIncLeftB,      // ++
144    SIncRightB,     // правый ++
145    SDecLeftB,      // --
146    SDecRightB,     // правый --
147    SAddB,          // +=
148    SSubB,          // -=
149    SMulB,          // *=
150    SDivB,          // /=
151    SModB,          // %=
152    SAndB,          // &=
153    SOrB,           // |=
154    SXorB,          // ^=
155    SLeftB,         // <<=
156    SRightB,        // >>=
157 
158    SMulBS,         // *=
159    SDivBS,         // /=
160    SModBS,         // %=
161    SLeftBS,        // <<=
162    SRightBS,       // >>=
163 
164    SIncLeftUS,      // ++
165    SIncRightUS,     // правый ++
166    SDecLeftUS,      // --
167    SDecRightUS,     // правый --
168    SAddUS,          // +=
169    SSubUS,          // -=
170    SMulUS,          // *=
171    SDivUS,          // /=
172    SModUS,          // %=
173    SAndUS,          // &=
174    SOrUS,           // |=
175    SXorUS,          // ^=
176    SLeftUS,         // <<=
177    SRightUS,        // >>=
178 
179    SMulS,           // *=
180    SDivS,           // /=
181    SModS,           // %=
182    SLeftS,          // <<=
183    SRightS,         // >>=
184 
185    // Команды конвертации
186    Sd2f,
187    Sd2i,
188    Sd2l,
189    Sf2d,
190    Sf2i,
191    Sf2l,
192    Si2d,
193    Si2f,
194    Si2l,
195    Sl2d, 
196    Sl2f,
197    Sl2i,
198    Sui2d,
199    Sui2f,
200    Sui2l,
201 //   Sul2d,
202 //   Sul2f,
203 //   Sul2i,
204 
205    SSizeof,      // Размер типа
206    SArgsCount,   // Возвратить количество параметров
207    SArgsGet,     // Получить i-й параметр
208    SGetText,     // Получить текущий вывод
209    SGetID,       // Получение ID по имени
210    SGetIDCall,   // Получение ID по имени и параметрам
211    SGetVM,       // Получить идентификатор виртуальной машины
212 
213    SNop,         //  Метка - Пустая команда
214    SVarsInit,    // Инициализациия блока переменных cmd 1 - номер блока
215    SSubCall,     // Вызов локальной функции. cmd 1 - координаты для goto.
216    SSubRet,      // определить количество возвращаемых dword  cmd 1
217    SSubPar,      // Определить параметры у подфункции. cmd 1 - номер блока 
218                  // переменных-параметров для данной подфункции.
219                  // cmd 2 - количество копируемых dword
220    SSubReturn,   // Выход из подфункции
221    SPtrGlobal,   // Получить указатель на глобальную переменную cmd 1 - идентифкатор переменной
222    SCmdLoad,     // Идентифкатор поместить в стэк. При загрузке конвертируется в SDwLoad 
223    SCmdCall,     // Вызов функции по коду из стэка cmd 1 - количетсво dword занимаемых параметрами.
224                  // код вызова находится перед ними
225 //   SSizeof,      // Размер типа
226 //   SArgsCount,   // Возвратить количество параметров
227 //   SArgsGet,     // Получить i-й параметр
228 //   SGetVM,       // Получить идентификатор виртуальной машины
229    STypeInit,    // Инициализировать переменную указатель и id типа 
230    STypeMustInit,// Данный тип имеет функции инициализации или деинициализации 0 init /1 deinit + id типа
231    STypeMustDel, // Данный тип имеет функции инициализации или деинициализации 0 init /1 deinit + id типа
232    STypeDelete,  // Освободить переменную указатель и id типа 
233 //   SGetText,     // Получить текущий вывод
234    SSetTextPtr,  // Вывод текста по SPtrDataSize 
235    SSetTextClear,// Вывод текста по str и очищение str
236    SSetText,     // Вывод текста по str 
237    SCollectAdd,  // Добавить значения к коллекции cmd - 1 - dword количество dwords в стэке на описание 
238                  // добавляемых элементов
239                  // В стэке val1 ... vali + < количество dwords под val( byte ) + type of val (3 байт) > 
240    SException,   // Добавить функцию обработки исключения
241    SThrow,       // Генерация исключения
242    SCallFunc,
243    SCallStd,
244    SReturn,      //  Выход из функции
245 
246    // Базовые типы
247    SByteSign,    // Не менять положение типов!
248    SByte,
249    SShort,
250    SUShort,
251    SInt,
252    SUInt,
253    SFloat,        
254    SLong,         // 64-разрядные типы
255    SULong,
256    SDouble,
257    SBuf,
258    SStr,
259    SCollection,   // Тип коллекция
260    SReserved,     // Тип для резервирования места
261 //   SCollection,   // Тип коллекция
262    SLast,
263 
264    SPtrStr = 253,    // Следом идет строка в тексте
265 }
266 */