Changeset 21866
- Timestamp:
- 2014-08-14T09:39:22+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Compiler/Template/CodegenCpp.tpl
r21863 r21866 2043 2043 let fname = underscorePath(name) 2044 2044 << /*tuple return type*/ 2045 struct <%fname%>Type 2045 struct <%fname%>Type/*RecordTypeTest*/ 2046 2046 { 2047 2047 typedef boost::tuple< <%vars |> var => funReturnDefinition1(var,simCode) ;separator=", "%> > TUPLE_ARRAY; … … 2054 2054 TUPLE_ARRAY data; 2055 2055 }; 2056 typedef <%fname%>Type <%fname%>RetType /* functionHeaderRegularFunction1 */;2056 typedef <%fname%>Type/*RecordTypeTest*/ <%fname%>RetType /* functionHeaderRegularFunction1 */; 2057 2057 >> 2058 2058 … … 2102 2102 ;separator=", ") 2103 2103 << 2104 <%fname%>Type <%fname%>(<%funArgsStr%>);2104 void /*RecordTypetest*/ <%fname%>(<%funArgsStr%>,<%fname%>Type &output ); 2105 2105 >> 2106 2106 end functionHeaderRecordConstruct; … … 2200 2200 let structVar = tempDecl(structType, &varDecls /*BUFD*/) 2201 2201 2202 << 2203 <%retType%> Functions::<%fname%>(<%funArgs |> var as VARIABLE(__) => '<%varType1(var,simCode)%> <%crefStr(name)%>' ;separator=", "%>) 2202 2203 << 2204 void /*<%retType%>*/ Functions::<%fname%>(<%funArgs |> var as VARIABLE(__) => '<%varType1(var,simCode)%> <%crefStr(name)%>' ;separator=", "%>,<%retType%>& output ) 2204 2205 { 2205 2206 <%varDecls%> 2207 <%funArgs |> VARIABLE(__) => '<%structVar%>.<%crefStr(name)%> = <%crefStr(name)%>;' ;separator="\n"%> 2208 return <%structVar%>; 2206 <%funArgs |> VARIABLE(__) => 'output.<%crefStr(name)%> = <%crefStr(name)%>;' ;separator="\n"%> 2207 //output = <%structVar%>; 2208 //return <%structVar%>; 2209 2209 } 2210 2210 … … 2237 2237 << 2238 2238 /* functionHeaderRegularFunction2 */ 2239 <%fname%>RetType <%fname%>(<%functionArguments |> var => funArgDefinition(var,simCode,useFlatArrayNotation) ;separator=", "%>);2239 void /*<%fname%>RetType*/ <%fname%>(<%functionArguments |> var => funArgDefinition(var,simCode,useFlatArrayNotation) ;separator=", "%>, <%fname%>RetType& output); 2240 2240 >> 2241 2241 case EXTERNAL_FUNCTION(outVars=var::_) then … … 2243 2243 << 2244 2244 /* functionHeaderRegularFunction2 */ 2245 <%fname%>RetType <%fname%>(<%funArgs |> var => funArgDefinition(var,simCode,useFlatArrayNotation) ;separator=", "%>);2245 void /*<%fname%>RetType*/ <%fname%>(<%funArgs |> var => funArgDefinition(var,simCode,useFlatArrayNotation) ;separator=", "%>, <%fname%>RetType output); 2246 2246 >> 2247 2247 case EXTERNAL_FUNCTION(outVars={}) then … … 2278 2278 let()= System.tmpTickReset(1) 2279 2279 let fname = underscorePath(name) 2280 let retType = if outVars then '<%fname%>RetType /* functionBodyRegularFunction */' else "void"2280 let retType = if outVars then '<%fname%>RetType ' else "void" /* functionBodyRegularFunction */ 2281 2281 let &varDecls = buffer "" /*BUFD*/ 2282 2282 let &varInits = buffer "" /*BUFD*/ … … 2314 2314 //let boxedFn = if acceptMetaModelicaGrammar() then functionBodyBoxed(fn) 2315 2315 << 2316 <%retType%> Functions::<%fname%>(<%functionArguments |> var => funArgDefinition(var,simCode,useFlatArrayNotation) ;separator=", "%>) 2316 //if outvars missing 2317 void /*<%retType%>*/ Functions::<%fname%>(<%functionArguments |> var => funArgDefinition(var,simCode,useFlatArrayNotation) ;separator=", "%> <%if outVars then ', <%retType%>& output' %> ) 2317 2318 { 2318 2319 //functionBodyRegularFunction … … 2326 2327 while(false); 2327 2328 <%outVarAssign%> 2328 return <%if outVars then '_<%fname%>' %>; 2329 <%if outVars then 'output = _<%fname%>;' %> 2329 2330 } 2330 2331 … … 2370 2371 2371 2372 let fnBody = << 2372 <%retType%> Functions::<%fname%>(<%funArgs |> var => funArgDefinition(var,simCode,useFlatArrayNotation) ;separator=", "%>)2373 void /*<%retType%>*/ Functions::<%fname%>(<%funArgs |> var => funArgDefinition(var,simCode,useFlatArrayNotation) ;separator=", "%> ,<%retType%>& output)/*function2*/ 2373 2374 { 2374 2375 /* functionBodyExternalFunction: varDecls */ … … 2671 2672 "" 2672 2673 else 2673 let &varAssign += '_<%fname%>= <%contextCref(var.name,contextFunction,simCode,useFlatArrayNotation)%>;<%\n%>'2674 let &varAssign += '_<%fname%>=/*test21*/ <%contextCref(var.name,contextFunction,simCode,useFlatArrayNotation)%>;<%\n%>' 2674 2675 "" 2675 2676 case var as VARIABLE(__) then … … 2695 2696 */ 2696 2697 if instDims then 2697 let &varAssign += '_<%fname%>.assign(<%contextCref(var.name,contextFunction,simCode,useFlatArrayNotation)%>) ;<%\n%>'2698 let &varAssign += '_<%fname%>.assign(<%contextCref(var.name,contextFunction,simCode,useFlatArrayNotation)%>)/*test21*/;<%\n%>' 2698 2699 //let &varAssign += '<%contextCref(var.name,contextFunction,simCode)%>;<%\n%>' 2699 2700 "" 2700 2701 else 2701 let &varAssign += '_<%fname%> = <%contextCref(var.name,contextFunction,simCode,useFlatArrayNotation)%>;<%\n%>'2702 let &varAssign += '_<%fname%> =/*test22*/ <%contextCref(var.name,contextFunction,simCode,useFlatArrayNotation)%>;<%\n%>' 2702 2703 //let &varAssign += '<%contextCref(var.name,contextFunction,simCode)%>;<%\n%>' 2703 2704 "" … … 9128 9129 let arraytpye = 'multi_array_ref<<%expTypeShort(ty)%>,<%listLength(dims)%>>' 9129 9130 let &preExp += match context 9130 case FUNCTION_CONTEXT(__) then ' <%retVar%>.assign(<%funName%>(<%argStr%>));<%\n%>'9131 case FUNCTION_CONTEXT(__) then '(<%funName%>(<%argStr%>,<%retVar%>));<%\n%>' 9131 9132 /*multi_array else 'assign_array(<%retVar%> ,_functions.<%funName%>(<%argStr%>));<%\n%>'*/ 9132 else ' <%retVar%>= _functions-><%funName%>(<%argStr%>);<%\n%>'9133 else '_functions-><%funName%>(<%argStr%>, <%retVar%>);<%\n%>' 9133 9134 9134 9135 … … 9153 9154 let retType = '<%funName%>RetType /* undefined */' 9154 9155 let retVar = tempDecl(retType, &varDecls) 9155 let &preExp += match context case FUNCTION_CONTEXT(__) then'<% if retVar then '<%retVar%> = '%><%funName%>(<%argStr%>);<%\n%>'9156 else ' <%if retVar then '<%retVar%> = '%>(_functions-><%funName%>(<%argStr%>));<%\n%>'9156 let &preExp += match context case FUNCTION_CONTEXT(__) then'<%funName%>(<%argStr%><%if retVar then ',<%retVar%>'%>);<%\n%>' 9157 else '_functions-><%funName%>(<%argStr%><%if retVar then ',<%retVar%>'%>);<%\n%>' 9157 9158 '<%retVar%>' 9158 9159 … … 9509 9510 let ret_type = '<%record_type_name%>RetType' 9510 9511 let ret_var = tempDecl(ret_type, &varDecls) 9511 let &preExp += ' <%ret_var%> = _functions-><%record_type_name%>(<%vars%>);<%\n%>'9512 let &preExp += '_functions-><%record_type_name%>(<%vars%>,<%ret_var%>);<%\n%>' 9512 9513 '<%ret_var%>' 9513 9514 end daeExpRecordCrefRhs;
Note: See TracChangeset
for help on using the changeset viewer.