| 3368 | // |
| 3369 | |
| 3370 | static act* act_include() |
| 3371 | { |
| 3372 | PAR_get_token(); |
| 3373 | MSC_match(KW_SEMI_COLON); |
| 3374 | |
| 3375 | act* action = (act*) MSC_alloc(ACT_LEN); |
| 3376 | action->act_type = ACT_b_declare; |
| 3377 | gpreGlob.cur_routine = action; // Hmm, global var |
| 3378 | |
| 3379 | if (!gpreGlob.isc_databases) |
| 3380 | { |
| 3381 | // allocate database block and link to db chain |
| 3382 | |
| 3383 | gpreGlob.isc_databases = (gpre_dbb*) MSC_alloc_permanent(DBB_LEN); |
| 3384 | |
| 3385 | // allocate symbol block |
| 3386 | |
| 3387 | gpre_sym* symbol = (gpre_sym*) MSC_alloc_permanent(SYM_LEN); |
| 3388 | |
| 3389 | // make it a database, specifically this one |
| 3390 | |
| 3391 | symbol->sym_type = SYM_database; |
| 3392 | symbol->sym_object = (gpre_ctx*) gpreGlob.isc_databases; |
| 3393 | symbol->sym_string = gpreGlob.database_name; |
| 3394 | |
| 3395 | // database block points to the symbol block |
| 3396 | |
| 3397 | gpreGlob.isc_databases->dbb_name = symbol; |
| 3398 | gpreGlob.isc_databases->dbb_filename = NULL; |
| 3399 | gpreGlob.isc_databases->dbb_flags = DBB_sqlca; |
| 3400 | gpreGlob.isc_databases->dbb_c_lc_ctype = gpreGlob.module_lc_ctype; |
| 3401 | if (gpreGlob.sw_external) |
| 3402 | gpreGlob.isc_databases->dbb_scope = DBB_EXTERN; |
| 3403 | } |
| 3404 | else |
| 3405 | // Load the symbol (hash) table with relation names from this database. |
| 3406 | MET_load_hash_table(gpreGlob.isc_databases); |
| 3407 | |
| 3408 | HSH_insert(gpreGlob.isc_databases->dbb_name); |
| 3409 | |
| 3410 | return action; |
| 3411 | } |
| 3412 | |
| 3413 | |
| 3414 | //____________________________________________________________ |
no test coverage detected