source: dev/trunk/ab5.0/abdev/ab_common/include/Lexical/TypeMisc.h@ 829

Last change on this file since 829 was 829, checked in by イグトランス (egtra), 12 years ago

svn:eol-styleとsvn:mime-type(文字コード指定含む)の設定

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain; charset=Shift_JIS
File size: 2.0 KB
Line 
1#pragma once
2
3#define VN_SIZE 4096
4#define PTR_SIZE sizeof(LONG_PTR)
5
6#define DEF_NON -1
7
8/* basic\command.sbp内の "_System_Type_***" 定数と同期が必要 */
9#define FLAG_PTR 0x80000000
10#define FLAG_CAST 0x40000000
11
12//整数型
13#define DEF_SBYTE 0x00000001
14#define DEF_BYTE 0x00000002
15#define DEF_INTEGER 0x00000003
16#define DEF_WORD 0x00000004
17#define DEF_LONG 0x00000005
18#define DEF_DWORD 0x00000006
19#define DEF_INT64 0x00000007
20#define DEF_QWORD 0x00000008
21
22//実数型
23#define DEF_SINGLE 0x00000009
24#define DEF_DOUBLE 0x0000000A
25
26//文字型
27#define DEF_CHAR 0x0000000B
28
29//bool型
30#define DEF_BOOLEAN 0x0000000C
31
32//文字列型
33#define DEF_STRING 0x0000000D
34
35//ポインタ型
36#define DEF_PTR_VOID 0x0000000E
37#define DEF_PTR_PROC 0x0000000F
38
39//特殊型
40#define DEF_ANY 0x00000015
41#define DEF_ELLIPSE 0x00000016
42#define DEF_OBJECT 0x00000017 // クラス
43#define DEF_STRUCT 0x00000018 // 構造体
44#define DEF_TYPE_PARAMETER 0x00000019 // 型パラメータ(ジェネリクスサポート)
45
46//ポインタ型
47#define MASK_PTR 0x0000ff00
48#define MASK_NATURAL 0x000000ff
49
50#define PTR_LEVEL(t) (((t)&MASK_PTR)>>8)
51#define NATURAL_TYPE(t) ((t)&MASK_NATURAL)
52#define MAKE_PTR_TYPE(t,p) ((t)|((p)<<8))
53#define PTR_LEVEL_UP(t) t = MAKE_PTR_TYPE(NATURAL_TYPE(t),PTR_LEVEL(t)+1)
54#define PTR_LEVEL_DOWN(t) t = MAKE_PTR_TYPE(NATURAL_TYPE(t),PTR_LEVEL(t)-1)
55
56#define DEF_PTR_OBJECT MAKE_PTR_TYPE(DEF_OBJECT,1)
57#define DEF_PTR_STRUCT MAKE_PTR_TYPE(DEF_STRUCT,1)
58
59
60
61//NumOpe関数の結果がリテラル値の場合、その値の補助情報がindexに格納される
62#define LITERAL_NULL -2
63#define LITERAL_M128_0 -3
64#define LITERAL_0_255 -4
65#define LITERAL_M32768_0 -5
66#define LITERAL_0_65535 -6
67#define LITERAL_OTHER_MINUS -7
68#define LITERAL_OTHER_PLUS -8
69
70#define LITERAL_STRING -9
71
72#define IS_LITERAL(x) (x<=LITERAL_NULL&&x!=LITERAL_STRING)
73#define IS_MINUS_LITERAL(x) (x==LITERAL_M128_0||x==LITERAL_M32768_0||x==LITERAL_OTHER_MINUS)
74#define IS_POSITIVE_LITERAL(x) (x==LITERAL_NULL||x==LITERAL_0_255||x==LITERAL_0_65535||x==LITERAL_OTHER_PLUS)
75
76
77typedef std::vector<int> Subscripts;
Note: See TracBrowser for help on using the repository browser.