00001 using System; 00002 using System.Collections.Generic; 00003 using System.Text; 00004 00005 namespace EmbeddedCh 00006 { 00007 /* for Ch_Version(interp, &info); Ch Professional v5.5.0.13151 */ 00008 public struct ChInfo_t { 00009 String edition; /* "Professional", "Standard" */ 00010 String releasedate; /* "March 17, 2005" */ 00011 String version; /* "", "Beta", or "Alpha" */ 00012 uint vermajor; /* 5 */ 00013 uint verminor; /* 5 */ 00014 uint vermicro; /* 0 */ 00015 uint verbuild; /* 13151 */ 00016 }; 00017 00018 /* data type in Ch */ 00019 public enum ChType_t { 00020 CH_UNDEFINETYPE,/* undefined type */ 00021 /* simple type */ 00022 CH_CHARTYPE=10, /* char */ 00023 CH_UCHARTYPE, /* unsigned char */ 00024 CH_SHORTTYPE, /* short */ 00025 CH_USHORTTYPE, /* unsigned short */ 00026 CH_INTTYPE, /* int, long int */ 00027 CH_UINTTYPE, /* unsigned int, unsigned long int */ 00028 CH_LLINTTYPE, /* long long int */ 00029 CH_ULLINTTYPE, /* unsigned long long int */ 00030 CH_FLOATTYPE, /* float */ 00031 CH_DOUBLETYPE, /* double */ 00032 CH_LDOUBLETYPE, /* long double */ 00033 CH_COMPLEXTYPE, /* float complex */ 00034 CH_LCOMPLEXTYPE,/* double complex */ 00035 CH_STRINGTYPE, /* string_t type */ 00036 CH_FILETYPE, /* FILE */ 00037 CH_VOIDTYPE, /* void */ 00038 CH_PROCTYPE, /* function type */ 00039 CH_STRUCTTYPE, /* struct */ 00040 CH_CLASSTYPE, /* class */ 00041 CH_UNIONTYPE, /* union */ 00042 CH_ENUMTYPE, /* enum */ 00043 00044 /* returned Ch array type for Ch_VaArrayType(), Ch_ArrayType(), and Ch_FuncArgArrayType() */ 00045 /* CH_CARRAYTYPE and CH_CHARRAYTYPE are also used in ChVarArgsAddArg() and Ch_SetVar() */ 00046 /* Ch_VarArgsAddArg(&arglist, CH_CARRAYTYPE, CH_INTTYPE, a, dim, extent, ...) */ 00047 /* Ch_VarArgsAddArg(&arglist, CH_CHARRAYTYPE, CH_INTTYPE, a, dim, extent, ...) */ 00048 CH_CARRAYTYPE=80, /* int a[3] */ 00049 CH_CARRAYPTRTYPE, /* int f(int (*ap)[3]); Ch_FuncArgDataType(ap) is CH_INTTYPE, 00050 Ch_FuncArgArrayType(ap) is CH_CARRAYPTRTYPE */ 00051 /* int (*p)[3]); p is pointer to int when not inside a function arg, 00052 Ch_DataType(p) is CH_INTPTRTYPE, Ch_ArrayType(ap) is CH_UNDEFINETYPE */ 00053 CH_CARRAYVLATYPE, /* int a[n]; int func(int a[n], int b[:], int c[&]) */ 00054 CH_CHARRAYTYPE, /* array int a[3] */ 00055 CH_CHARRAYPTRTYPE, /* array int (*ap)[3] */ 00056 CH_CHARRAYVLATYPE, /* array int a[n]; int fun(array int a[n], array int b[:], array int c[&]) */ 00057 00058 /* pointer */ 00059 CH_NULLTYPE = 100, /* NULL */ 00060 CH_VOIDPTRTYPE, /* void* */ 00061 CH_CHARPTRTYPE, /* char* */ 00062 CH_UCHARPTRTYPE, /* unsigned char* */ 00063 CH_SHORTPTRTYPE, /* short* */ 00064 CH_USHORTPTRTYPE, /* unsigned short* */ 00065 CH_INTPTRTYPE, /* int*, long int * */ 00066 CH_UINTPTRTYPE, /* unsigned int*, unsigned long int * */ 00067 CH_LLINTPTRTYPE, /* long long int* */ 00068 CH_ULLINTPTRTYPE, /* unsigned long long int* */ 00069 CH_FLOATPTRTYPE, /* float* */ 00070 CH_DOUBLEPTRTYPE, /* double* */ 00071 CH_LDOUBLEPTRTYPE, /* long double* */ 00072 CH_COMPLEXPTRTYPE, /* float complex* */ 00073 CH_LCOMPLEXPTRTYPE,/* double complex* */ 00074 CH_STRINGPTRTYPE, /* string_t * */ 00075 CH_PROCPTRTYPE, /* function ptr type */ 00076 CH_FILEPTRTYPE, /* FILE * */ 00077 CH_STRUCTPTRTYPE, /* struct * */ 00078 CH_CLASSPTRTYPE, /* class* */ 00079 CH_UNIONPTRTYPE, /* union * */ 00080 CH_ENUMPTRTYPE, /* enum * */ 00081 00082 /* double pointer */ 00083 CH_VOIDPTR2TYPE=200,/* void** */ 00084 CH_CHARPTR2TYPE, /* char** */ 00085 CH_UCHARPTR2TYPE, /* unsigned char** */ 00086 CH_SHORTPTR2TYPE, /* short** */ 00087 CH_USHORTPTR2TYPE, /* unsigned short** */ 00088 CH_INTPTR2TYPE, /* int*, long int** */ 00089 CH_UINTPTR2TYPE, /* unsigned int**, unsigned long int** */ 00090 CH_LLINTPTR2TYPE, /* long long int** */ 00091 CH_ULLINTPTR2TYPE, /* unsigned long long int** */ 00092 CH_FLOATPTR2TYPE, /* float** */ 00093 CH_DOUBLEPTR2TYPE, /* double** */ 00094 CH_LDOUBLEPTR2TYPE, /* long double** */ 00095 CH_COMPLEXPTR2TYPE, /* float complex** */ 00096 CH_LCOMPLEXPTR2TYPE,/* double complex** */ 00097 CH_STRINGPTR2TYPE, /* string_t ** */ 00098 CH_FILEPTR2TYPE, /* FILE ** */ 00099 CH_STRUCTPTR2TYPE, /* struct ** for now */ 00100 CH_CLASSPTR2TYPE, /* class ** */ 00101 CH_UNIONPTR2TYPE, /* union ** */ 00102 CH_ENUMPTR2TYPE /* enum ** */ 00103 }; 00104 00105 /* the return value for APIs of int type */ 00106 public enum ChRetVal 00107 { 00108 CH_OK = 0, 00109 CH_ERROR = -1, 00110 CH_ABORT = 1, 00111 }; 00112 }