EnglishРусский  

   ..

   common.c

   common.h

   gefile.h

   geload.c

   gesave.c

   types.h

   vm.c

   vm.h

Реклама

Инсталлятор CreateInstall
Бесплатные и коммерческие инсталляторы

 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: ge 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov ( gentee )
13 *
14 * Summary: The format of the compiled byte-code. Also, this is a format of 
15   .ge files.
16 * 
17 ******************************************************************************/
18 
19 #ifndef _GE_
20 #define _GE_
21 
22    #ifdef __cplusplus               
23       extern "C" {                 
24    #endif // __cplusplus      
25 
26 
27 
28 /*-----------------------------------------------------------------------------
29 * Summary: The GE defines
30 -----------------------------------------------------------------------------*/
31 
32 #define GE_STRING  0x00004547   // 'GE' string
33 #define GEVER_MAJOR  4
34 #define GEVER_MINOR  0
35 
36 /*-----------------------------------------------------------------------------
37 * Summary: The header of GE data
38 -----------------------------------------------------------------------------*/
39 #pragma pack(push, 1)
40 typedef struct
41 {
42    uint    idname;    // 'GE' string. It must equal GE_STRING
43    uint    flags;     // The GE flags.
44    uint    crc;       // CRC from the next byte to the end
45    uint    headsize;  // The size of the header data
46    uint    size;      // The summary size of this GE. It includes this header
47    ubyte   vermajor;  // The major version of .ge format. The virtual machine
48                       // can load the byte code only with the same major version
49    ubyte   verminor;  // The minor version of .ge format. 
50 } gehead, * pgehead;
51 #pragma pack(pop)
52 
53 
54 // Флаги для VAR DWORD MODE
55 
56 #define  VAR_NAME   0x01   // Есть имя 
57 #define  VAR_OFTYPE 0x02   // Есть of type
58 #define  VAR_DIM    0x04   // Есть размерность [,,,]
59 #define  VAR_IDNAME 0x08   // For define if macro has IDNAME type
60 // В этом случае, тип строка, но она содержит имя идентификатора
61 #define  VAR_PARAM  0x10   // Параметр функции или подфункции
62 #define  VAR_DATA   0x20   // Имеются данные
63 
64 // Parameters for 'mode' of load_bytecode
65 #define  VMLOAD_GE      0   // Loading from GE 
66 #define  VMLOAD_G       1   // Loading from G
67 #define  VMLOAD_EXTERN  1   // Extern description
68 
69 pvmobj  STDCALL load_exfunc( pvmEngine pThis, pubyte* input, uint over );
70 pvmobj  STDCALL load_type( pvmEngine pThis, pubyte* input );
71 pvmobj  STDCALL load_stack( pvmEngine pThis, int top, int cmd, void* pseudo );
72 uint STDCALL ge_load( pvmEngine pThis, char* fileName);
73 uint STDCALL ge_save( pvmEngine pThis, char* fileName, char* isSave);
74 
75 //--------------------------------------------------------------------------
76 
77    #ifdef __cplusplus              
78       }                            
79    #endif // __cplusplus
80 
81 #endif // _GE_
82 
83 
Редактировать