Linked_List LISTcopy( Linked_List src ) { Linked_List dst = LISTcreate(); LISTdo( src, x, Generic ) LISTadd( dst, x ); LISTod return dst; }
/** return ref'd entities */ static void SCHEMA_get_entities_ref( Scope scope, Linked_List result ) { Rename * rename; DictionaryEntry de; if( scope->search_id == __SCOPE_search_id ) { return; } scope->search_id = __SCOPE_search_id; ENTITY_MARK++; /* fully REF'd schema */ LISTdo( scope->u.schema->ref_schemas, schema, Schema ) SCOPE_get_entities( schema, result ); /* don't go down remote schema's ref_schemas */ LISTod /* partially REF'd schema */ DICTdo_init( scope->u.schema->refdict, &de ); while( 0 != ( rename = ( Rename * )DICTdo( &de ) ) ) { if( DICT_type == OBJ_ENTITY ) { LISTadd( result, rename->object ); } } }
static void exp2cxx_usage( void ) { fprintf( stderr, "usage: %s [-s|-S] [-a|-A] [-L] [-v] [-d # | -d 9 -l nnn -u nnn] [-n] [-p <object_type>] {-w|-i <warning>} express_file\n", EXPRESSprogram_name ); fprintf( stderr, "where\t-s or -S uses only single inheritance in the generated C++ classes\n" ); fprintf( stderr, "\t-a or -A generates the early bound access functions for entity classes the old way (without an underscore)\n" ); fprintf( stderr, "\t-L prints logging code in the generated C++ classes\n" ); fprintf( stderr, "\t-v produces the version description below\n" ); fprintf( stderr, "\t-d turns on debugging (\"-d 0\" describes this further\n" ); fprintf( stderr, "\t-p turns on printing when processing certain objects (see below)\n" ); fprintf( stderr, "\t-n do not pause for internal errors (useful with delta script)\n" ); fprintf( stderr, "\t-w warning enable\n" ); fprintf( stderr, "\t-i warning ignore\n" ); fprintf( stderr, "and <warning> is one of:\n" ); fprintf( stderr, "\tnone\n\tall\n" ); LISTdo( ERRORwarnings, opt, Error_Warning ) fprintf( stderr, "\t%s\n", opt->name ); LISTod fprintf( stderr, "and <object_type> is one or more of:\n" ); fprintf( stderr, " e entity\n" ); fprintf( stderr, " p procedure\n" ); fprintf( stderr, " r rule\n" ); fprintf( stderr, " f function\n" ); fprintf( stderr, " t type\n" ); fprintf( stderr, " s schema or file\n" ); fprintf( stderr, " # pass #\n" ); fprintf( stderr, " E everything (all of the above)\n" ); print_fedex_version(); exit( 2 ); }
static void usage( void ) { fprintf( stderr, "usage: %s [-v] [-d # | -d 9 [-l nnn | -u nnn]] [-n] [-p <object_type>] {-w|-i <warning>} express_file\n", EXPRESSprogram_name ); fprintf( stderr, "where\t-v produces the following version description:\n" ); print_fedex_version(); fprintf( stderr, "\t-d turns on debugging (\"-d 0\" describes this further\n" ); fprintf( stderr, "\t-p turns on printing when processing certain objects (see below)\n" ); fprintf( stderr, "\t-n do not pause for internal errors (useful with delta script)\n" ); fprintf( stderr, "\t-w warning enable\n" ); fprintf( stderr, "\t-i warning ignore\n" ); fprintf( stderr, "and <warning> is one of:\n" ); fprintf( stderr, "\tnone\n\tall\n" ); LISTdo( ERRORwarnings, opt, Error_Warning ) fprintf( stderr, "\t%s\n", opt->name ); LISTod fprintf( stderr, "and <object_type> is one or more of:\n" ); fprintf( stderr, " e entity\n" ); fprintf( stderr, " p procedure\n" ); fprintf( stderr, " r rule\n" ); fprintf( stderr, " f function\n" ); fprintf( stderr, " t type\n" ); fprintf( stderr, " s schema or file\n" ); fprintf( stderr, " # pass #\n" ); fprintf( stderr, " E everything (all of the above)\n" ); exit( 2 ); }
/******************* utype_member determines if the given "link's" underlying type is a member of the list. RETURNS the underlying type if it is a member; otherwise 0 is returned. If "rename" is TRUE, we also consider check to match in certain cases where list already has an item that check is a renaming of (see header comments to compareOrigTypes() above). *******************/ const char * utype_member( const Linked_List list, const Type check, int rename ) { static char r [BUFSIZ]; LISTdo( list, t, Type ) strncpy( r, TYPEget_utype( t ), BUFSIZ ); if( strcmp( r, TYPEget_utype( check ) ) == 0 ) { return r; } if( rename && compareOrigTypes( check, t ) ) { return r; } LISTod; return 0; }
static void SCHEMA_get_entities_use( Scope scope, Linked_List result ) { DictionaryEntry de; Rename * rename; if( scope->search_id == __SCOPE_search_id ) { return; } scope->search_id = __SCOPE_search_id; /* fully USE'd schema */ LISTdo( scope->u.schema->use_schemas, schema, Schema ) SCOPE_get_entities( schema, result ); SCHEMA_get_entities_use( schema, result ); LISTod /* partially USE'd schema */ if( scope->u.schema->usedict ) { DICTdo_init( scope->u.schema->usedict, &de ); while( 0 != ( rename = ( Rename * )DICTdo( &de ) ) ) { LISTadd( result, rename->object ); } } }
void RULE_out( Rule r, int level ) { int i = 0; first_newline(); exppp_ref_info( &r->symbol ); raw( "%*sRULE %s FOR ( ", level, "", r->symbol.name ); LISTdo( r->u.rule->parameters, p, Variable ) i++; if( i != 1 ) { raw( ", " ); } wrap( p->name->symbol.name ); LISTod; raw( " );\n" ); ALGscope_out( r, level + exppp_nesting_indent ); STMTlist_out( r->u.rule->body, level + exppp_nesting_indent ); raw( "\n" ); WHERE_out( RULEget_where( r ), level ); raw( "\n%*sEND_RULE;", level, "" ); tail_comment( r->symbol.name ); }
void STMTlist_out( Linked_List stmts, int level ) { LISTdo( stmts, stmt, Statement ) STMT_out( stmt, level ); LISTod }