diff --git a/@EMLGenerator/generate_eml_multi.m b/@EMLGenerator/generate_eml_multi.m new file mode 100644 index 0000000000000000000000000000000000000000..a29c255aa0fcc59389959c0cdc90c4ee36556ef7 --- /dev/null +++ b/@EMLGenerator/generate_eml_multi.m @@ -0,0 +1,52 @@ +%% generate_eml_horizontal +% generate the embedded matlab code for grid1, seperated from +% the code for grid2 since for a 2d table grid1 conditions will +% be sub conditions of grid2 conditions +% inputs: +% object:EMLGenerator - current object +% g1:Grid - Grid 1 +% g2_cell:Cell - Cell for which grid1 is sub conditon of +% depth:int - integer representing recursion dept for formating +% use +% outputs: +% code:string - string of eml code +% Author: Colin Eles elesc@mcmaster.ca +% Organization: McMaster Centre for Software Certification +function code = generate_eml_multi(object,g1,g2_cell,depth) +space = ''; +for i=1:depth + space = [space sprintf(' ')]; +end +code = []; +code2 = []; +elsecell = []; +for i=1:size(g1.cells,2) + g1cond = g1.cells(i).cond_text; + % condition string of otherwise corresponds to an else + % statement, we allow this statement to be in any order + % in the cells of the grid, so we need to find where it + % is, if it exists. + + output_parsed = EMLGenerator.parse_inputs(strtrim(char(g1.cells(i).cond_text))); + + output = char(output_parsed{1}(1)); + + + code = [code sprintf('%s%s = ',space,output)]; + + resultcell = object.data.Grid0.search_return(g1.cells(i),g2_cell); + if(~isempty(resultcell)) + + code = [code sprintf('%s;\n',EMLGenerator.type_convert(output,object.datatype,char(resultcell.result_text)))]; + + else + + end + +end + + + + +end +