Skip to content

Commit 187ed8f

Browse files
author
x02lucpo
committed
corrected bug 337 mathcore
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@1966 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 6287747 commit 187ed8f

File tree

2 files changed

+67
-74
lines changed

2 files changed

+67
-74
lines changed

Compiler/Ceval.rml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1164,7 +1164,7 @@ axiom ceval_interactive_functions (env, Exp.CALL(Absyn.IDENT("clear"),[],_,_),s
11641164
Util.string_append_list([cit,".", pd, executable, " -m ",
11651165
method_str," >> output.log 2>&1",
11661166
cit]) => sim_call &
1167-
System.system_call(sim_call) => _ &
1167+
System.system_call(sim_call) => 0 &
11681168

11691169
Util.string_append_list([executable,"_res.plt"]) => result_file &
11701170

@@ -1739,6 +1739,7 @@ relation change_to_file_dir:(Absyn.ComponentRef, (* class *)
17391739
Util.string_split_at_char(filename,pd') => filename' &
17401740
Util.list_strip_last(filename') => dir &
17411741
Util.string_delimit_list(dir,pd) => dir' &
1742+
17421743
System.cd(dir') => 0
17431744
------------------------------
17441745
change_to_file_dir(class,p) => ()

Compiler/SimCodegen.rml

Lines changed: 65 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -457,14 +457,8 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
457457
output_str,output_comments,num_output,(* output *)
458458
param_str,param_comments,num_param (* param *))
459459

460-
461-
rule (*generate STATE names*)
462-
(*generate DERIVATIVES names because the same combination of var_kind and direction*)
463-
let kind_lst = [DAELow.STATE] &
464-
let direction_lst = [DAE.INPUT,DAE.OUTPUT,DAE.BIDIR] &
465-
Util.list_getmember(kind,kind_lst) => _ & (* if this fails then the var is not added to list*)
466-
Util.list_getmember(dir,direction_lst) => _ & (* if this fails then the var is not added to list*)
467-
460+
rule (*generate INPUTS names*)
461+
DAELow.is_var_on_top_level_and_input(var) => true &
468462
generate_var_names_and_comments2(vs,
469463
state_str,state_comments,num_state,(* state *)
470464
derivative_str,derivative_comments,num_derivative,(* derivative *)
@@ -480,70 +474,58 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
480474
param_str',param_comments',num_param' (* param *)) &
481475

482476
Util.string_append_list(["\"",origname,"\""]) => origname' &
483-
change_name_for_derivative(origname) => der_origname' &
484-
Util.string_append_list(["\"",der_origname',"\""]) => der_origname &
485477
Dump.unparse_comment_option(comment) => comment &
486-
int_add(num_state',1) => num_state'' &
487-
int_add(num_derivative',1) => num_derivative'' &
478+
int_add(num_input',1) => num_input'' &
488479
generate_empty_string(comment) => comment' &
489480

490-
491-
Util.string_delimit_list_no_empty([origname',state_str'],", ") => state_str'' &
492-
Util.string_delimit_list_no_empty([comment',state_comments'],", ") => state_comments'' &
493-
494-
Util.string_delimit_list_no_empty([der_origname,derivative_str'],", ") => derivative_str'' &
495-
Util.string_delimit_list_no_empty([comment',derivative_comments'],", ") => derivative_comments''
481+
Util.string_delimit_list_no_empty([origname',input_str'],", ") => input_str'' &
482+
Util.string_delimit_list_no_empty([comment',input_comments'],", ") => input_comments''
496483

497484
-----------------------
498-
generate_var_names_and_comments2(DAELow.VAR(cr,kind,dir,_,_,_,
499-
_,value,indx,origname,_,dae_var_attr,comment,flow)::vs,
485+
generate_var_names_and_comments2((var as DAELow.VAR(cr,kind,dir,_,_,_,
486+
_,value,indx,origname,_,dae_var_attr,comment,flow))::vs,
500487
state_str,state_comments,num_state,(* state *)
501488
derivative_str,derivative_comments,num_derivative,(* derivative *)
502489
algvars_str,algvars_comments,num_algvars,(* algvars *)
503490
input_str,input_comments,num_input,(* input *)
504491
output_str,output_comments,num_output,(* output *)
505492
param_str,param_comments,num_param (* param *))
506493

507-
=> (state_str'',state_comments'',num_state'',(* state *)
508-
derivative_str'',derivative_comments'',num_derivative'',(* derivative *)
494+
=> (state_str',state_comments',num_state',(* state *)
495+
derivative_str',derivative_comments',num_derivative',(* derivative *)
509496
algvars_str',algvars_comments',num_algvars',(* algvars *)
510-
input_str',input_comments',num_input',(* input *)
497+
input_str'',input_comments'',num_input'',(* input *)
511498
output_str',output_comments',num_output',(* output *)
512499
param_str',param_comments',num_param' (* param *))
513500

514501

515-
516-
rule (*generate ALGVARS names*)
517-
let kind_lst = [DAELow.VARIABLE,DAELow.DISCRETE,DAELow.DUMMY_DER,DAELow.DUMMY_STATE,DAELow.DISCRETE] &
518-
let direction_lst = [DAE.INPUT,DAE.OUTPUT,DAE.BIDIR] &
519-
Util.list_getmember(kind,kind_lst) => _ & (* if this fails then the var is not added to list*)
520-
Util.list_getmember(dir,direction_lst) => _ & (* if this fails then the var is not added to list*)
521-
502+
rule (*generate OUTPUT names*)
503+
DAELow.is_var_on_top_level_and_output(var) => true &
522504
generate_var_names_and_comments2(vs,
523505
state_str,state_comments,num_state,(* state *)
524506
derivative_str,derivative_comments,num_derivative,(* derivative *)
525507
algvars_str,algvars_comments,num_algvars,(* algvars *)
526508
input_str,input_comments,num_input,(* input *)
527509
output_str,output_comments,num_output,(* output *)
528510
param_str,param_comments,num_param (* param *))
529-
=> (state_str',state_comments',num_state',(* state *)
530-
derivative_str',derivative_comments',num_derivative',(* derivative *)
531-
algvars_str',algvars_comments',num_algvars',(* algvars *)
532-
input_str',input_comments',num_input',(* input *)
533-
output_str',output_comments',num_output',(* output *)
534-
param_str',param_comments',num_param' (* param *)) &
511+
=> (state_str',state_comments',num_state',(* state *)
512+
derivative_str',derivative_comments',num_derivative',(* derivative *)
513+
algvars_str',algvars_comments',num_algvars',(* algvars *)
514+
input_str',input_comments',num_input',(* input *)
515+
output_str',output_comments',num_output',(* output *)
516+
param_str',param_comments',num_param' (* param *)) &
535517

536518
Util.string_append_list(["\"",origname,"\""]) => origname' &
537519
Dump.unparse_comment_option(comment) => comment &
538-
int_add(num_algvars',1) => num_algvars'' &
520+
int_add(num_output',1) => num_output'' &
539521
generate_empty_string(comment) => comment' &
540522

541-
Util.string_delimit_list_no_empty([origname',algvars_str'],", ") => algvars_str'' &
542-
Util.string_delimit_list_no_empty([comment',algvars_comments'],", ") => algvars_comments''
543-
544-
-----------------------
545-
generate_var_names_and_comments2(DAELow.VAR(cr,kind,dir,_,_,_,
546-
_,value,indx,origname,_,dae_var_attr,comment,flow)::vs,
523+
524+
Util.string_delimit_list_no_empty([origname',output_str'],", ") => output_str'' &
525+
Util.string_delimit_list_no_empty([comment',output_comments'],", ") => output_comments''
526+
-----------------------
527+
generate_var_names_and_comments2((var as DAELow.VAR(cr,kind,dir,_,_,_,
528+
_,value,indx,origname,_,dae_var_attr,comment,flow))::vs,
547529
state_str,state_comments,num_state,(* state *)
548530
derivative_str,derivative_comments,num_derivative,(* derivative *)
549531
algvars_str,algvars_comments,num_algvars,(* algvars *)
@@ -553,14 +535,15 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
553535

554536
=> (state_str',state_comments',num_state',(* state *)
555537
derivative_str',derivative_comments',num_derivative',(* derivative *)
556-
algvars_str'',algvars_comments'',num_algvars'',(* algvars *)
538+
algvars_str',algvars_comments',num_algvars',(* algvars *)
557539
input_str',input_comments',num_input',(* input *)
558-
output_str',output_comments',num_output',(* output *)
540+
output_str'',output_comments'',num_output'',(* output *)
559541
param_str',param_comments',num_param' (* param *))
560542

561-
rule (*generate INPUTS names*)
562-
let kind_lst = [DAELow.VARIABLE,DAELow.DISCRETE,DAELow.DUMMY_DER,DAELow.DUMMY_STATE,DAELow.DISCRETE] &
563-
let direction_lst = [DAE.INPUT] &
543+
544+
rule (*generate PARAM names*)
545+
let kind_lst = [DAELow.PARAM] &
546+
let direction_lst = [DAE.INPUT,DAE.OUTPUT,DAE.BIDIR] &
564547
Util.list_getmember(kind,kind_lst) => _ & (* if this fails then the var is not added to list*)
565548
Util.list_getmember(dir,direction_lst) => _ & (* if this fails then the var is not added to list*)
566549

@@ -580,11 +563,11 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
580563

581564
Util.string_append_list(["\"",origname,"\""]) => origname' &
582565
Dump.unparse_comment_option(comment) => comment &
583-
int_add(num_input',1) => num_input'' &
566+
int_add(num_param',1) => num_param'' &
584567
generate_empty_string(comment) => comment' &
585-
586-
Util.string_delimit_list_no_empty([origname',input_str'],", ") => input_str'' &
587-
Util.string_delimit_list_no_empty([comment',input_comments'],", ") => input_comments''
568+
569+
Util.string_delimit_list_no_empty([origname',param_str'],", ") => param_str'' &
570+
Util.string_delimit_list_no_empty([comment',param_comments'],", ") => param_comments''
588571

589572
-----------------------
590573
generate_var_names_and_comments2(DAELow.VAR(cr,kind,dir,_,_,_,
@@ -599,14 +582,15 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
599582
=> (state_str',state_comments',num_state',(* state *)
600583
derivative_str',derivative_comments',num_derivative',(* derivative *)
601584
algvars_str',algvars_comments',num_algvars',(* algvars *)
602-
input_str'',input_comments'',num_input'',(* input *)
585+
input_str',input_comments',num_input',(* input *)
603586
output_str',output_comments',num_output',(* output *)
604-
param_str',param_comments',num_param' (* param *))
605-
587+
param_str'',param_comments'',num_param'' (* param *))
606588

607-
rule (*generate OUTPUT names*)
608-
let kind_lst = [DAELow.VARIABLE,DAELow.DISCRETE,DAELow.DUMMY_DER,DAELow.DUMMY_STATE,DAELow.DISCRETE] &
609-
let direction_lst = [DAE.OUTPUT] &
589+
590+
rule (*generate STATE names*)
591+
(*generate DERIVATIVES names because the same combination of var_kind and direction*)
592+
let kind_lst = [DAELow.STATE] &
593+
let direction_lst = [DAE.INPUT,DAE.OUTPUT,DAE.BIDIR] &
610594
Util.list_getmember(kind,kind_lst) => _ & (* if this fails then the var is not added to list*)
611595
Util.list_getmember(dir,direction_lst) => _ & (* if this fails then the var is not added to list*)
612596

@@ -625,13 +609,20 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
625609
param_str',param_comments',num_param' (* param *)) &
626610

627611
Util.string_append_list(["\"",origname,"\""]) => origname' &
612+
change_name_for_derivative(origname) => der_origname' &
613+
Util.string_append_list(["\"",der_origname',"\""]) => der_origname &
628614
Dump.unparse_comment_option(comment) => comment &
629-
int_add(num_output',1) => num_output'' &
615+
int_add(num_state',1) => num_state'' &
616+
int_add(num_derivative',1) => num_derivative'' &
630617
generate_empty_string(comment) => comment' &
631-
632618

633-
Util.string_delimit_list_no_empty([origname',output_str'],", ") => output_str'' &
634-
Util.string_delimit_list_no_empty([comment',output_comments'],", ") => output_comments''
619+
620+
Util.string_delimit_list_no_empty([origname',state_str'],", ") => state_str'' &
621+
Util.string_delimit_list_no_empty([comment',state_comments'],", ") => state_comments'' &
622+
623+
Util.string_delimit_list_no_empty([der_origname,derivative_str'],", ") => derivative_str'' &
624+
Util.string_delimit_list_no_empty([comment',derivative_comments'],", ") => derivative_comments''
625+
635626
-----------------------
636627
generate_var_names_and_comments2(DAELow.VAR(cr,kind,dir,_,_,_,
637628
_,value,indx,origname,_,dae_var_attr,comment,flow)::vs,
@@ -642,16 +633,17 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
642633
output_str,output_comments,num_output,(* output *)
643634
param_str,param_comments,num_param (* param *))
644635

645-
=> (state_str',state_comments',num_state',(* state *)
646-
derivative_str',derivative_comments',num_derivative',(* derivative *)
636+
=> (state_str'',state_comments'',num_state'',(* state *)
637+
derivative_str'',derivative_comments'',num_derivative'',(* derivative *)
647638
algvars_str',algvars_comments',num_algvars',(* algvars *)
648639
input_str',input_comments',num_input',(* input *)
649-
output_str'',output_comments'',num_output'',(* output *)
640+
output_str',output_comments',num_output',(* output *)
650641
param_str',param_comments',num_param' (* param *))
651642

652643

653-
rule (*generate PARAM names*)
654-
let kind_lst = [DAELow.PARAM] &
644+
645+
rule (*generate ALGVARS names*)
646+
let kind_lst = [DAELow.VARIABLE,DAELow.DISCRETE,DAELow.DUMMY_DER,DAELow.DUMMY_STATE,DAELow.DISCRETE] &
655647
let direction_lst = [DAE.INPUT,DAE.OUTPUT,DAE.BIDIR] &
656648
Util.list_getmember(kind,kind_lst) => _ & (* if this fails then the var is not added to list*)
657649
Util.list_getmember(dir,direction_lst) => _ & (* if this fails then the var is not added to list*)
@@ -672,13 +664,13 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
672664

673665
Util.string_append_list(["\"",origname,"\""]) => origname' &
674666
Dump.unparse_comment_option(comment) => comment &
675-
int_add(num_param',1) => num_param'' &
667+
int_add(num_algvars',1) => num_algvars'' &
676668
generate_empty_string(comment) => comment' &
677669

678-
Util.string_delimit_list_no_empty([origname',param_str'],", ") => param_str'' &
679-
Util.string_delimit_list_no_empty([comment',param_comments'],", ") => param_comments''
670+
Util.string_delimit_list_no_empty([origname',algvars_str'],", ") => algvars_str'' &
671+
Util.string_delimit_list_no_empty([comment',algvars_comments'],", ") => algvars_comments''
680672

681-
-----------------------
673+
-----------------------
682674
generate_var_names_and_comments2(DAELow.VAR(cr,kind,dir,_,_,_,
683675
_,value,indx,origname,_,dae_var_attr,comment,flow)::vs,
684676
state_str,state_comments,num_state,(* state *)
@@ -690,10 +682,10 @@ relation generate_var_names_and_comments2:(DAELow.Var list,
690682

691683
=> (state_str',state_comments',num_state',(* state *)
692684
derivative_str',derivative_comments',num_derivative',(* derivative *)
693-
algvars_str',algvars_comments',num_algvars',(* algvars *)
685+
algvars_str'',algvars_comments'',num_algvars'',(* algvars *)
694686
input_str',input_comments',num_input',(* input *)
695687
output_str',output_comments',num_output',(* output *)
696-
param_str'',param_comments'',num_param'' (* param *))
688+
param_str',param_comments',num_param' (* param *))
697689

698690

699691

0 commit comments

Comments
 (0)