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: bcodes 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov ( gentee )
13 *
14 * Summary: Working with lexems
15 *
16 ******************************************************************************/
17
18 #ifndef _BCODES_
19 #define _BCODES_
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif // __cplusplus
24
25 #include "lexem.h"
26 #include "func.h"
27
28 /*-----------------------------------------------------------------------------
29 *
30 * ID: bcflag 19.10.06 0.0.A.
31 *
32 * Summary: The structure for bc_flag function
33 *
34 -----------------------------------------------------------------------------*/
35
36 typedef struct
37 {
38 uint value; // The value of flags
39 s_desctype index; // For index flag
40 s_desctype inherit; // For inherit flag
41 uint alias; // For alias flag - id of the created alias
42 } bcflag, * pbcflag;
43
44 /*-----------------------------------------------------------------------------
45 *
46 * ID: bflags 03.11.06 0.0.A.
47 *
48 * Summary: flags for bc_flag -> type
49 *
50 -----------------------------------------------------------------------------*/
51
52 #define BFLAG_DEFINE 0x1 // define command
53 #define BFLAG_FUNC 0x2 // func operator method property command
54 #define BFLAG_IMPORT 0x4 // import command
55 #define BFLAG_TYPE 0x8 // type command
56
57 /*-----------------------------------------------------------------------------
58 *
59 * ID: bc_getid 03.11.06 0.0.A.
60 *
61 * Summary: Get an id of vm
62 *
63 -----------------------------------------------------------------------------*/
64
65 plexem STDCALL bc_flag( plexem plex, uint type, pbcflag bcf );
66 uint STDCALL bc_getid( plexem plex );
67 uint STDCALL bc_type( plexem plex );
68 pvmfunc STDCALL bc_func( plexem plex, uint count, puint pars );
69 pvmfunc STDCALL bc_method( plexem plex, uint count, puint pars );
70 uint CDECLCALL bc_find( plexem plexerr, pubyte name, uint count, ... );
71 pvmfunc STDCALL bc_funcname( plexem plexerr, pubyte name, uint count, puint pars );
72 //uint STDCALL bc_obj( plexem plex );
73 //pvmfunc STDCALL bc_oper( plexem plex, uint srctype, uint desttype );
74 pvmfunc STDCALL bc_oper( plexem plex, uint srctype, uint desttype,
75 uint srcof, uint destof );
76
77 pvmfunc STDCALL bc_property( plexem plex, uint objtype, uint setpar );
78 pvmfunc STDCALL bc_isproperty( plexem plex, uint objtype );
79 uint STDCALL bc_resource( pubyte ptr );
80
81 //--------------------------------------------------------------------------
82
83 #ifdef __cplusplus
84 }
85 #endif // __cplusplus
86
87 #endif // _BCODES_