From ac6c3a1c75ea795ae999d1f2405c4f1357aca5a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Sj=C3=B6lund?= Date: Thu, 31 Mar 2011 10:09:29 +0000 Subject: [PATCH] - Fix some compiler warnings git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@8430 f25d12d1-65f4-0310-ae8a-bbce733d8d8e --- Compiler/BackEnd/SimCode.mo | 268 ++++++++++++++++----------------- Compiler/Script/CevalScript.mo | 14 +- 2 files changed, 142 insertions(+), 140 deletions(-) diff --git a/Compiler/BackEnd/SimCode.mo b/Compiler/BackEnd/SimCode.mo index 2cee79e9c96..48ee35f9c9b 100644 --- a/Compiler/BackEnd/SimCode.mo +++ b/Compiler/BackEnd/SimCode.mo @@ -86,7 +86,6 @@ protected import Expression; protected import ExpressionDump; protected import ExpressionSolve; protected import ExpressionSimplify; -protected import HashTable4; protected import SCodeUtil; protected import SimCodeC; protected import SimCodeCSharp; @@ -9091,7 +9090,7 @@ algorithm equation Absyn.CLASSMOD(eqMod=Absyn.EQMOD(exp=Absyn.STRING(str))) = Interactive.getModificationValue(eltarg, Absyn.CREF_IDENT("IncludeDirectory",{})); - str = CevalScript.getFullPathFromUri(str); + str = CevalScript.getFullPathFromUri(str,false); str = "\"-I"+&str+&"\""; // Yes, we have to append lists here so they appear in the correct order in the Makefile... libs = listAppend(libs,{str}); @@ -9099,7 +9098,7 @@ algorithm case (path,_,_,libs) equation str = "modelica://" +& Absyn.pathString(path) +& "/Resources/Include"; - str = CevalScript.getFullPathFromUri(str); + str = CevalScript.getFullPathFromUri(str,false); str = "\"-I"+&str+&"\""; // Yes, we have to append lists here so they appear in the correct order in the Makefile... libs = listAppend(libs,{str}); @@ -9123,7 +9122,7 @@ algorithm equation Absyn.CLASSMOD(eqMod=Absyn.EQMOD(exp=Absyn.STRING(str))) = Interactive.getModificationValue(eltarg, Absyn.CREF_IDENT("LibraryDirectory",{})); - str = CevalScript.getFullPathFromUri(str); + str = CevalScript.getFullPathFromUri(str,false); platform1 = System.openModelicaPlatform(); platform2 = System.modelicaPlatform(); str1 = Util.if_(platform1 ==& "", "", "\"-L" +& str +& "/" +& platform1 +& "\""); @@ -9134,7 +9133,7 @@ algorithm case (path,_,libs) equation str = "modelica://" +& Absyn.pathString(path) +& "/Resources/Library"; - str = CevalScript.getFullPathFromUri(str); + str = CevalScript.getFullPathFromUri(str,false); platform1 = System.openModelicaPlatform(); platform2 = System.modelicaPlatform(); str1 = Util.if_(platform1 ==& "", "", "\"-L" +& str +& "/" +& platform1 +& "\""); @@ -10847,33 +10846,30 @@ protected function stateindex2 output SimVar outSimVar; algorithm (outSimVar):= matchcontinue(stateVars,dae_low) local - list> ordered_states; - Integer new_index; - DAE.ComponentRef Name; - BackendDAE.VarKind VarKind; - String Comment; - String Unit; - String DisplayUnit; - Integer Index; - Option InitialValue; - Boolean IsFixed; - DAE.ExpType Type_; - Boolean IsDiscrete; + list> ordered_states; + Integer new_index; + DAE.ComponentRef name; + BackendDAE.VarKind varKind; + String comment,unit,displayUnit; + Integer index; + Option initialValue; + Boolean isFixed,isDiscrete; + DAE.ExpType type_; // arrayCref is the name of the array if this variable is the first in that // array - Option ArrayCref; - AliasVariable Aliasvar; - Absyn.Info Info; - Causality Causality; + Option arrayCref; + AliasVariable aliasvar; + Absyn.Info info; + Causality causality; Option variable_index; - case(SIMVAR(name=Name,varKind=VarKind,comment=Comment,unit=Unit,displayUnit=DisplayUnit,index=Index,initialValue=InitialValue,isFixed=IsFixed,type_=Type_,isDiscrete=IsDiscrete,arrayCref=ArrayCref,aliasvar=Aliasvar,info=Info,causality=Causality,variable_index=variable_index),dae_low) + case(SIMVAR(name=name,varKind=varKind,comment=comment,unit=unit,displayUnit=displayUnit,index=index,initialValue=initialValue,isFixed=isFixed,type_=type_,isDiscrete=isDiscrete,arrayCref=arrayCref,aliasvar=aliasvar,info=info,causality=causality,variable_index=variable_index),dae_low) equation - Debug.fcall("cppvarindex",print, " search index for state variable " +& ComponentReference.printComponentRefStr(Name) +& "\n"); + Debug.fcall("cppvarindex",print, " search index for state variable " +& ComponentReference.printComponentRefStr(name) +& "\n"); ordered_states=setVariableDerIndex(dae_low); - new_index=stateindex(Name,ordered_states); + new_index=stateindex(name,ordered_states); then - SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,new_index,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,Causality,variable_index); + SIMVAR(name,varKind,comment,unit,displayUnit,new_index,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index); end matchcontinue; end stateindex2; @@ -10909,33 +10905,34 @@ iterates the states vector an increments the vector index of each variable input list in_vars; input Integer index; output list out_vars; -algorithm out_vars := matchcontinue(in_vars,index) - local - DAE.ComponentRef Name; - BackendDAE.VarKind VarKind; - String Comment; - String Unit; - String DisplayUnit; - Integer Index; - Option InitialValue; - Boolean IsFixed; - DAE.ExpType Type_; - Boolean IsDiscrete; - // arrayCref is the name of the array if this variable is the first in that - // array - Option ArrayCref; - AliasVariable Aliasvar; - Absyn.Info Info; - Causality Causality; - Option variable_index; - list rest,indexed_vector; - case({},_) then {}; - case(SIMVAR(name=Name,varKind=VarKind,comment=Comment,unit=Unit,displayUnit=DisplayUnit,index=Index,initialValue=InitialValue,isFixed=IsFixed,type_=Type_,isDiscrete=IsDiscrete,arrayCref=ArrayCref,aliasvar=Aliasvar,info=Info,causality=Causality,variable_index=variable_index) :: rest,index) - equation - indexed_vector = setStatesVectorIndex2(rest,index+1); - then - SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,Index,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,Causality,SOME(index))::indexed_vector; -end matchcontinue; +algorithm + out_vars := matchcontinue(in_vars,index) + local + DAE.ComponentRef name; + BackendDAE.VarKind varKind; + String comment; + String unit; + String displayUnit; + Integer index; + Option initialValue; + Boolean isFixed; + DAE.ExpType type_; + Boolean isDiscrete; + // arrayCref is the name of the array if this variable is the first in that + // array + Option arrayCref; + AliasVariable aliasvar; + Absyn.Info info; + Causality causality; + Option variable_index; + list rest,indexed_vector; + case({},_) then {}; + case(SIMVAR(name=name,varKind=varKind,comment=comment,unit=unit,displayUnit=displayUnit,initialValue=initialValue,isFixed=isFixed,type_=type_,isDiscrete=isDiscrete,arrayCref=arrayCref,aliasvar=aliasvar,info=info,causality=causality,variable_index=variable_index) :: rest,index) + equation + indexed_vector = setStatesVectorIndex2(rest,index+1); + then + SIMVAR(name,varKind,comment,unit,displayUnit,index,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,SOME(index))::indexed_vector; + end matchcontinue; end setStatesVectorIndex2; @@ -11015,50 +11012,51 @@ Helper function for varsToVarInfo2 input SimVar in_vf; output SimVar out_vf; -algorithm out_vf := matchcontinue(in_vf) - local - DAE.ComponentRef Name; - BackendDAE.VarKind VarKind; - String Comment; - String Unit; - String DisplayUnit; - Option InitialValue; - Boolean IsFixed; - DAE.ExpType Type_; - Boolean IsDiscrete; - // arrayCref is the name of the array if this variable is the first in that - // array - Option ArrayCref; - AliasVariable Aliasvar; - Absyn.Info Info; - Causality causality; - Option variable_index; - DAE.ComponentRef cr_1; - String name_str,id_str; - case(SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,0,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,variable_index)) - equation - name_str = ComponentReference.printComponentRefStr(Name); - id_str = stringAppendList({BackendDAE.derivativeNamePrefix,"." ,name_str}); - cr_1 = ComponentReference.makeCrefIdent(id_str,DAE.ET_REAL(),{}); - then - SIMVAR(cr_1,VarKind,Comment,Unit,DisplayUnit,0,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,variable_index); - case(SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,1,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,variable_index)) - equation - name_str = ComponentReference.printComponentRefStr(Name); - id_str = stringAppendList({BackendDAE.derivativeNamePrefix,".",name_str}); - cr_1 = ComponentReference.makeCrefIdent(id_str,DAE.ET_REAL(),{}); - then - SIMVAR(cr_1,VarKind,Comment,Unit,DisplayUnit,1,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,variable_index); +algorithm + out_vf := matchcontinue(in_vf) + local + DAE.ComponentRef name; + BackendDAE.VarKind varKind; + String comment; + String unit; + String displayUnit; + Option initialValue; + Boolean isFixed; + DAE.ExpType type_; + Boolean isDiscrete; + // arrayCref is the name of the array if this variable is the first in that + // array + Option arrayCref; + AliasVariable aliasvar; + Absyn.Info info; + Causality causality; + Option variable_index; + DAE.ComponentRef cr_1; + String name_str,id_str; + case(SIMVAR(name,varKind,comment,unit,displayUnit,0,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index)) + equation + name_str = ComponentReference.printComponentRefStr(name); + id_str = stringAppendList({BackendDAE.derivativeNamePrefix,"." ,name_str}); + cr_1 = ComponentReference.makeCrefIdent(id_str,DAE.ET_REAL(),{}); + then + SIMVAR(cr_1,varKind,comment,unit,displayUnit,0,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index); + case(SIMVAR(name,varKind,comment,unit,displayUnit,1,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index)) + equation + name_str = ComponentReference.printComponentRefStr(name); + id_str = stringAppendList({BackendDAE.derivativeNamePrefix,".",name_str}); + cr_1 = ComponentReference.makeCrefIdent(id_str,DAE.ET_REAL(),{}); + then + SIMVAR(cr_1,varKind,comment,unit,displayUnit,1,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index); - case(SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,2,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,variable_index)) - equation - name_str = ComponentReference.printComponentRefStr(Name); - id_str = stringAppendList({BackendDAE.derivativeNamePrefix,".",name_str}); - cr_1 = ComponentReference.makeCrefIdent(id_str,DAE.ET_REAL(),{}); - then - SIMVAR(cr_1,VarKind,Comment,Unit,DisplayUnit,2,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,variable_index); - end matchcontinue; - end generateDerStates2; + case(SIMVAR(name,varKind,comment,unit,displayUnit,2,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index)) + equation + name_str = ComponentReference.printComponentRefStr(name); + id_str = stringAppendList({BackendDAE.derivativeNamePrefix,".",name_str}); + cr_1 = ComponentReference.makeCrefIdent(id_str,DAE.ET_REAL(),{}); + then + SIMVAR(cr_1,varKind,comment,unit,displayUnit,2,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index); + end matchcontinue; +end generateDerStates2; protected function replaceindex @@ -11066,34 +11064,35 @@ protected function replaceindex input SimVar var; input list statevarlist; output SimVar newvar; -algorithm (newvar) := matchcontinue(var,statevarlist) - local list rest,rest1; - DAE.ComponentRef Name,Name1; - BackendDAE.VarKind VarKind; - String Comment; - String Unit; - String DisplayUnit; - Integer Index,Index1; - Option InitialValue; - Boolean IsFixed; - DAE.ExpType Type_; - Boolean IsDiscrete; - Option ArrayCref; - AliasVariable Aliasvar; - Absyn.Info Info; - Causality causality; - Option variable_index; - Integer variable_index1; - SimVar v,newvar1; +algorithm + newvar := matchcontinue(var,statevarlist) + local + list rest,rest1; + DAE.ComponentRef name,name1; + BackendDAE.VarKind varKind; + String comment; + String unit; + String displayUnit; + Integer index,index1; + Option initialValue; + Boolean isFixed; + DAE.ExpType type_; + Boolean isDiscrete; + Option arrayCref; + AliasVariable aliasvar; + Absyn.Info info; + Causality causality; + Option variable_index; + Integer variable_index1; + SimVar v,newvar1; - case((v as SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,Index,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,variable_index)),SIMVAR(Name1,_,_,_,_,Index1,_,_,_,_,_,_,_,_,SOME(variable_index1))::_) + case((v as SIMVAR(name,varKind,comment,unit,displayUnit,index,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index)),SIMVAR(name1,_,_,_,_,index1,_,_,_,_,_,_,_,_,SOME(variable_index1))::_) equation - Debug.fcall("cppvarindex",print, " compare variable " +& ComponentReference.printComponentRefStr(Name) +& "with " +& ComponentReference.printComponentRefStr(Name1) +& "\n"); - true = ComponentReference.crefEqual(Name,Name1); - + Debug.fcall("cppvarindex",print, " compare variable " +& ComponentReference.printComponentRefStr(name) +& "with " +& ComponentReference.printComponentRefStr(name1) +& "\n"); + true = ComponentReference.crefEqual(name,name1); then - SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,variable_index1,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,SOME(Index1)); - case((v as SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,Index,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,variable_index)),_::rest1) + SIMVAR(name,varKind,comment,unit,displayUnit,variable_index1,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,SOME(index1)); + case((v as SIMVAR(name,varKind,comment,unit,displayUnit,index,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,variable_index)),_::rest1) equation newvar1=replaceindex(v,rest1); then newvar1; @@ -11156,24 +11155,25 @@ protected function dumpVarInfo "" input SimVar vf; output String str; algorithm str := matchcontinue(vf) - local DAE.ComponentRef Name; - BackendDAE.VarKind VarKind; - String Comment; - String Unit; - String DisplayUnit; - Integer x; - Option InitialValue; - Boolean IsFixed; - DAE.ExpType Type_; - Boolean IsDiscrete; + local + DAE.ComponentRef name; + BackendDAE.VarKind varKind; + String comment; + String unit; + String displayUnit; + Integer x; + Option initialValue; + Boolean isFixed; + DAE.ExpType type_; + Boolean isDiscrete; // arrayCref is the name of the array if this variable is the first in that // array - Option ArrayCref; - AliasVariable Aliasvar; - Absyn.Info Info; + Option arrayCref; + AliasVariable aliasvar; + Absyn.Info info; Causality causality; Integer y; - case(SIMVAR(Name,VarKind,Comment,Unit,DisplayUnit,x,InitialValue,IsFixed,Type_,IsDiscrete,ArrayCref,Aliasvar,Info,causality,SOME(y))) then " Var: " +& ComponentReference.printComponentRefStr(Name) +& " varibale index: " +& intString(x) +& " vector index:" +& intString(y) +& " translating to z[" +& intString(y) +& "]"; + case(SIMVAR(name,varKind,comment,unit,displayUnit,x,initialValue,isFixed,type_,isDiscrete,arrayCref,aliasvar,info,causality,SOME(y))) then " Var: " +& ComponentReference.printComponentRefStr(name) +& " varibale index: " +& intString(x) +& " vector index:" +& intString(y) +& " translating to z[" +& intString(y) +& "]"; end matchcontinue; end dumpVarInfo; diff --git a/Compiler/Script/CevalScript.mo b/Compiler/Script/CevalScript.mo index 38c7145a88a..c9cb9a9ea3f 100644 --- a/Compiler/Script/CevalScript.mo +++ b/Compiler/Script/CevalScript.mo @@ -1696,7 +1696,7 @@ algorithm case (cache,env,"uriToFilename",{Values.STRING(str)},st,msg) equation - str = getFullPathFromUri(str); + str = getFullPathFromUri(str,true); then (cache,Values.STRING(str),st); case (cache,env,"uriToFilename",_,st,msg) @@ -3698,21 +3698,22 @@ protected function getBasePathFromUri "Handle modelica:// URIs" input String scheme; input String name; input String modelicaPath; + input Boolean printError; output String basePath; algorithm - basePath := matchcontinue (scheme,name,modelicaPath) + basePath := matchcontinue (scheme,name,modelicaPath,printError) local list mps,names; String gd,mp,bp,str; - case ("modelica://",name,mp) + case ("modelica://",name,mp,_) equation names = System.strtok(name,"."); gd = System.groupDelimiter(); mps = System.strtok(mp, gd); bp = findModelicaPath(mps,names); then bp; - case ("file://",_,_) then ""; - case ("modelica://",name,mp) + case ("file://",_,_,_) then ""; + case ("modelica://",name,mp,true) equation name::_ = System.strtok(name,"."); str = "Could not resolve modelica://" +& name +& " with MODELICAPATH: " +& mp; @@ -3762,12 +3763,13 @@ end findModelicaPath2; public function getFullPathFromUri input String uri; + input Boolean printError; output String path; protected String str1,str2,str3; algorithm (str1,str2,str3) := System.uriToClassAndPath(uri); - path := getBasePathFromUri(str1,str2,Settings.getModelicaPath()) +& str3; + path := getBasePathFromUri(str1,str2,Settings.getModelicaPath(),printError) +& str3; end getFullPathFromUri; end CevalScript;