Index: mttroot/mtt/bin/trans/m/cbg2ese.m ================================================================== --- mttroot/mtt/bin/trans/m/cbg2ese.m +++ mttroot/mtt/bin/trans/m/cbg2ese.m @@ -21,10 +21,13 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% Version control history % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% $Id$ % %% $Log$ +% %% Revision 1.19 1998/04/12 11:58:19 peterg +% %% Rename port components by changing name_r to [name_r +% %% % %% Revision 1.18 1998/04/11 18:59:16 peterg % %% at_top_level now global - passed to SS components % %% % %% Revision 1.17 1998/04/04 10:47:31 peterg % %% Uses (coerced) components from _cbg file - _abg not now used here. @@ -129,10 +132,12 @@ % Evaluate the system function to get the bonds eval(['[bonds,status,system_type,components] = ', cbg_name, ';']); abg_name = [system_type, '_abg']; cmp_name = [system_type, '_cmp']; + alias_name = [system_type, '_alias']; + % No longer needed - cbg now has components: % eval(['[junk,components]=', abg_name, ';']); % Find number of bonds [n_bonds,columns] = size(bonds); @@ -156,32 +161,53 @@ comp = nozeros(components(i,:)); bond_list = abs(comp); direction = sign(comp)'*[1 1]; % Convert from arrow orientated to component orientated causality comp_bonds = bonds(bond_list,:).*direction; - + +disp('---- Component ---'); % Get the component details - eval([ '[comp_type,comp_name,cr,args,repetitions] = ', cmp_name, '(i);' ... + eval([ '[comp_type,comp_name,cr,args,repetitions] = ', cmp_name, '(i)' ... ]); - + + % Alias the args list + eval([ "alias = ", alias_name ";"]); + if is_struct(alias) + if length(args>0) + Args = split(args,";"); args=""; + [N,M]= size(Args); + for i=1:N + arg = deblank(Args(i,:)); + _arg = strrep(arg,",","__"); + if struct_contains(alias,_arg) + eval(["new_arg = alias.", _arg, ";"]); + mtt_info(["Replacing ", arg, "\t by ",\ + new_arg, " for component ", comp_name,\ + " (", comp_type,") within ", full_name]); + arg = new_arg; + end + args = sprintf("%s;%s", args, arg); + end + args = substr(args,2); % loose leading ; + end + end; + % Substitute positional ($1 etc) arguments cr = subs_arg(cr,system_cr, ... - 'lin',full_name,comp_type,comp_name,infofile); + 'lin',full_name,comp_type,comp_name); args = subs_arg(args,system_args, ... - '1',full_name,comp_type,comp_name, infofile); + '1',full_name,comp_type,comp_name); % change name of 0 and 1 components -- matlab doesn't like numbers here if strcmp(comp_type,'0') comp_type = 'zero'; end; if strcmp(comp_type,'1') comp_type = 'one'; end; - comp_type = comp_type - ports = length(bond_list) - repetitions = repetitions + ports = length(bond_list); if repetitions>1 port_pairs = ports/2; if round(port_pairs)~=port_pairs; mtt_info(['Repeated component ', comp_name, ... @@ -321,15 +347,9 @@ end; end; % Close the files fclose(ese_file); - - - - - -