if(prog[0]) {
keys[i++] = label_hashkey(prog);
}
keys[i] = label_hashkey(label);
h = hash(i+1, keys, LABELTABSIZE);
if(prog[0]) {
keys[i++] = label_hashkey(prog);
}
keys[i] = label_hashkey(label);
h = hash(i+1, keys, LABELTABSIZE);
WORD getlabel(const char *prog, const char *label)
{
assert(prog != NULL && label != NULL);
WORD getlabel(const char *prog, const char *label)
{
assert(prog != NULL && label != NULL);
/* 登録されたラベルを検索。すでに登録されている場合はエラー発生 */
if(getlabel(prog, label) != 0xFFFF) {
/* 登録されたラベルを検索。すでに登録されている場合はエラー発生 */
if(getlabel(prog, label) != 0xFFFF) {
for(p = labels[i]; p != NULL; p = p->next) {
assert(p->label != NULL);
l[s++] = p->label;
}
}
qsort(l, s, sizeof(*l), compare_adr);
for(p = labels[i]; p != NULL; p = p->next) {
assert(p->label != NULL);
l[s++] = p->label;
}
}
qsort(l, s, sizeof(*l), compare_adr);