Ignore:
Timestamp:
May 1, 2008, 12:10:33 PM (16 years ago)
Author:
dai_9181
Message:

ab_common.hを追加。
TypeMisc.hを追加。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/BasicFixed.h

    r462 r515  
    33
    44#define MAX_ARRAYDIM    16
    5 #define PTR_SIZE        sizeof(LONG_PTR)
    65#define VN_SIZE         1024
    76#define MAX_LEN         65535
     
    1514#define MACHINE_AMD64   2
    1615
    17 
    18 ////////////////
    19 // 型
    20 ////////////////
    21 
    22 #define DEF_NON         -1
    23 
    24 /* basic\command.sbp内の "_System_Type_***" 定数と同期が必要 */
    25 #define FLAG_PTR        0x80000000
    26 #define FLAG_CAST       0x40000000
    27 
    28 //整数型
    29 #define DEF_SBYTE       0x00000001
    30 #define DEF_BYTE        0x00000002
    31 #define DEF_INTEGER     0x00000003
    32 #define DEF_WORD        0x00000004
    33 #define DEF_LONG        0x00000005
    34 #define DEF_DWORD       0x00000006
    35 #define DEF_INT64       0x00000007
    36 #define DEF_QWORD       0x00000008
    37 
    38 //実数型
    39 #define DEF_SINGLE      0x00000009
    40 #define DEF_DOUBLE      0x0000000A
    41 
    42 //文字型
    43 #define DEF_CHAR        0x0000000B
    44 
    45 //bool型
    46 #define DEF_BOOLEAN     0x0000000C
    47 
    48 //文字列型
    49 #define DEF_STRING      0x0000000D
    50 
    51 //ポインタ型
    52 #define DEF_PTR_VOID    0x0000000E
    53 #define DEF_PTR_PROC    0x0000000F
    54 
    55 //特殊型
    56 #define DEF_ANY                     0x00000015
    57 #define DEF_ELLIPSE                 0x00000016
    58 #define DEF_OBJECT                  0x00000017      // クラス
    59 #define DEF_STRUCT                  0x00000018      // 構造体
    60 #define DEF_TYPE_PARAMETER          0x00000019      // 型パラメータ(ジェネリクスサポート)
    61 
    62 //ポインタ型
    63 #define MASK_PTR        0x0000ff00
    64 #define MASK_NATURAL    0x000000ff
    65 
    66 #define PTR_LEVEL(t)    (((t)&MASK_PTR)>>8)
    67 #define NATURAL_TYPE(t) ((t)&MASK_NATURAL)
    68 #define MAKE_PTR_TYPE(t,p)  ((t)|((p)<<8))
    69 #define PTR_LEVEL_UP(t)     t = MAKE_PTR_TYPE(NATURAL_TYPE(t),PTR_LEVEL(t)+1)
    70 #define PTR_LEVEL_DOWN(t)   t = MAKE_PTR_TYPE(NATURAL_TYPE(t),PTR_LEVEL(t)-1)
    71 
    72 #define DEF_PTR_OBJECT  MAKE_PTR_TYPE(DEF_OBJECT,1)
    73 #define DEF_PTR_STRUCT  MAKE_PTR_TYPE(DEF_STRUCT,1)
    74 
    75 
    76 
    77 //NumOpe関数の結果がリテラル値の場合、その値の補助情報がindexに格納される
    78 #define LITERAL_NULL        -2
    79 #define LITERAL_M128_0      -3
    80 #define LITERAL_0_255       -4
    81 #define LITERAL_M32768_0    -5
    82 #define LITERAL_0_65535     -6
    83 #define LITERAL_OTHER_MINUS -7
    84 #define LITERAL_OTHER_PLUS  -8
    85 
    86 #define LITERAL_STRING      -9
    87 
    88 #define IS_LITERAL(x) (x<=LITERAL_NULL&&x!=LITERAL_STRING)
    89 #define IS_MINUS_LITERAL(x) (x==LITERAL_M128_0||x==LITERAL_M32768_0||x==LITERAL_OTHER_MINUS)
    90 #define IS_POSITIVE_LITERAL(x) (x==LITERAL_NULL||x==LITERAL_0_255||x==LITERAL_0_65535||x==LITERAL_OTHER_PLUS)
    9116
    9217//////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.