MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / make_port

Function make_port

src/gpre/languages/ada.cpp:3342–3433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3340//
3341
3342static void make_port( const gpre_port* port, int column)
3343{
3344 printa(column, "type isc_%dt is record", port->por_ident);
3345
3346 for (const ref* reference = port->por_references; reference; reference = reference->ref_next)
3347 {
3348 const gpre_fld* field = reference->ref_field;
3349 const TEXT* name;
3350 const gpre_sym* symbol = field->fld_symbol;
3351 if (symbol)
3352 name = symbol->sym_string;
3353 else
3354 name = "<expression>";
3355 if (reference->ref_value && (reference->ref_flags & REF_array_elem))
3356 field = field->fld_array;
3357
3358 switch (field->fld_dtype)
3359 {
3360 case dtype_real:
3361 printa(column + INDENT, "isc_%d\t: %s;\t-- %s --", reference->ref_ident, REAL_DCL, name);
3362 break;
3363
3364 case dtype_double:
3365 printa(column + INDENT, "isc_%d\t: %s;\t-- %s --", reference->ref_ident, DOUBLE_DCL, name);
3366 break;
3367
3368 case dtype_short:
3369 printa(column + INDENT, "isc_%d\t: %s;\t-- %s --", reference->ref_ident, SHORT_DCL, name);
3370 break;
3371
3372 case dtype_long:
3373 printa(column + INDENT, "isc_%d\t: %s;\t-- %s --", reference->ref_ident, LONG_DCL, name);
3374 break;
3375
3376 case dtype_date:
3377 case dtype_quad:
3378 case dtype_blob:
3379 printa(column + INDENT, "isc_%d\t: firebird.quad;\t-- %s --", reference->ref_ident, name);
3380 break;
3381
3382 case dtype_text:
3383 if (strcmp(name, "isc_slack"))
3384 {
3385 if (field->fld_sub_type == 1)
3386 {
3387 if (field->fld_length == 1)
3388 printa(column + INDENT, "isc_%d\t: %s;\t-- %s --",
3389 reference->ref_ident, BYTE_DCL, name);
3390 else
3391 printa(column + INDENT, "isc_%d\t: %s (1..%d);\t-- %s --",
3392 reference->ref_ident, BYTE_VECTOR_DCL, field->fld_length, name);
3393 }
3394 else
3395 {
3396 if (field->fld_length == 1)
3397 printa(column + INDENT, "isc_%d\t: firebird.isc_character;\t-- %s --",
3398 reference->ref_ident, name);
3399 else

Callers 3

gen_databaseFunction · 0.70
gen_functionFunction · 0.70
gen_routineFunction · 0.70

Calls 3

CPR_errorFunction · 0.85
printaFunction · 0.70
snprintfFunction · 0.50

Tested by

no test coverage detected