Recent Entries
Archives
Search


Links
Powered by
Movable Type 2.64

2008年05月30日

OpenCOBOLと変数の(3)

いちいち変数のアドレスを積むのはいいとして、型だとか長さだとか解析するのが面倒だなあと思いつつ(;´Д`)昨日のプログラムを眺めていたら…


GETVALUE(char *value, const char *varname) {
cob_module *module = cob_current_module;
cob_field *f = module->cob_procedure_parameters[0];
printf("%08x %08x\n", value, f->data);
}

なんてコードが書けることに気づいてニヤニヤしてしまいましたヽ(´ー`)ノ。内部で他のfuncを呼び出す際に moduleっていう構造体(実体はcob_current_module)に引数である変数の「内部アドレスを」別途積んでたんですねー(昨日の日記参照)。
ということでOpenCOBOL自身がパースした後の情報をガッツリ頂けそうです。これは革命的ヽ(´ー`)ノ
ちなみにこんな情報がとれそうです:

/* field attributes */

typedef struct {
unsigned char type;
unsigned char digits;
signed char scale;
unsigned char flags;
const char *pic;
} cob_field_attr;

/* field structure */

typedef struct {
size_t size;
unsigned char *data;
cob_field_attr *attr;
} cob_field;


Posted by minemaz at 2008年05月30日 06:44
トラックバック
このエントリーのトラックバックURL:
http://www.lancard.com/mt/mt-tb.cgi/439

Comments
Post a comment









Remember personal info?