Newer
Older
Colin Eles
committed
%% matlab_to_cvc_syntax_translation
%translate matlab syntax to cvc syntax,
% will be added to in the future
% will only work for functions in the prelude
%
% inputs:
% object:cvc_checker - cvc_checker object
% matlab_string:string - string to be converted from matlab
% syntax to cvc
% outputs;
% cvc_string:string - string converted to cvc syntax.
% Author: Colin Eles elesc@mcmaster.ca
% Organization: McMaster Centre for Software Certification
function cvc_string = matlab_to_cvc_syntax_translation(matlab_string)
s = [matlab_string(1,:)];
for j = 2:size(matlab_string,1)
s = [s ' ' matlab_string(j,:)];
end
matlab_string = s;
Colin Eles
committed
cvc_string = regexprep(matlab_string,'&&',' AND ');
cvc_string = regexprep(cvc_string,'~(?!=)',' NOT ');
cvc_string = regexprep(cvc_string,'~=',' /= ');
cvc_string = regexprep(cvc_string,'==',' = ');
cvc_string = regexprep(cvc_string,'\|\|',' OR ');
cvc_string = regexprep(cvc_string,'ceil','ceiling');
floats = regexp(cvc_string,'[0-9]*\.[0-9]*','match');
for i=1:size(floats,2)
cvc_string = regexprep(cvc_string,floats{i},['(' strtrim(num2str(rats(eval(floats{i})))) ')'] );
end