Changeset 13841 for branches/dev-cw-2613/Compiler/ModelicaCBackEnd/src/jastadd/CCodeGen/CCodeGenExpressions.jrag
- Timestamp:
- Oct 24, 2019 2:46:05 PM (7 weeks ago)
- Location:
- branches/dev-cw-2613
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev-cw-2613
- Property svn:mergeinfo changed
/branches/dev-1247-jw (added) merged: 13653,13773,13784 /branches/dev-1247-jw-merge (added) merged: 13787 /branches/dev-5819 (added) merged: 13757 /branches/dev-jk-2483 (added) merged: 13776-13777 /trunk (added) merged: 13756,13758,13781,13789-13790,13793,13798,13825-13826
- Property svn:mergeinfo changed
-
branches/dev-cw-2613/Compiler/ModelicaCBackEnd/src/jastadd/CCodeGen/CCodeGenExpressions.jrag
r13431 r13841 1353 1353 } 1354 1354 1355 /** 1356 * Generate the initialization of delay blocks. 1357 */ 1358 public void FDelayExp.genInit_C(CodePrinter p, CodeStream str, String indent) { 1359 FExp maxDelayExp = myMaxDelayExp(); 1355 private void FClass.genDelayInitVarDecls_C(CodePrinter p, CodeStream str, String indent) { // Hook to facilitate extensions 1356 for (FDelayExp d : myDelayExps()) { 1357 d.genInitVarDecls_C(p, str, indent); 1358 } 1359 for (FSpatialDistExp d : mySpatialDistExps()) { 1360 d.genInitVarDecls_C(p, str, indent); 1361 } 1362 } 1363 1364 private void FClass.genDelayInitAssignments_C(CodePrinter p, CodeStream str, String indent) { // Hook to facilitate extensions 1365 for (FDelayExp d : myDelayExps()) { 1366 d.genInit_C(p, str, indent); 1367 } 1368 for (FSpatialDistExp d : mySpatialDistExps()) { 1369 d.genInit_C(p, str, indent); 1370 } 1371 } 1372 1373 public void FClass.genDelayInit_C(CodeStream genPrinter) { 1374 CodePrinter p = ASTNode.printer_C; 1375 String indent = p.indent(""); 1376 genDelayInitVarDecls_C(p, genPrinter, indent); 1377 genDelayInitAssignments_C(p, genPrinter, indent); 1378 } 1379 1380 private void FDelayExp.prepareInit_C(CodePrinter p, CodeStream str, String indent, int delayIndex) { 1381 FExp maxDelayExp = myMaxDelayExp(); 1360 1382 boolean fixed = isTimeEventGenerating(); 1361 1383 p.printPreSteps(getFExp(), str, indent); 1362 1384 p.printPreSteps(maxDelayExp, str, indent); 1363 1364 str.format("%sjmi_delay_init(jmi, %d, ", indent, myDelayIndex()); 1385 str.format("%sjmi_delay_init(jmi, %d, ", indent, delayIndex); 1365 1386 str.print(boolValue_C(fixed)); // jmi_boolean fixed 1366 1387 str.print(", "); … … 1368 1389 str.print(", "); 1369 1390 p.print(fixed ? getDelay() : maxDelayExp, str, indent); // jmi_real_t max_delay 1370 str.print(", "); 1371 p.print(getFExp(), str, indent); // jmi_real_t y0 1372 str.println(");"); 1373 1391 str.print(", "); 1392 1393 } 1394 1395 private void FDelayExp.finalizeInit_C(CodePrinter p, CodeStream str, String indent) { 1396 str.println(");"); 1374 1397 p.printPostSteps(getFExp(), str, indent); 1375 p.printPostSteps(maxDelayExp, str, indent); 1398 p.printPostSteps(myMaxDelayExp(), str, indent); 1399 } 1400 1401 /** 1402 * Generate the initialization of delay blocks. 1403 */ 1404 public void FDelayExp.genInit_C(CodePrinter p, CodeStream str, String indent) { 1405 prepareInit_C(p, str, indent, myDelayIndex()); 1406 p.print(getFExp(), str, indent); // jmi_real_t y0 1407 finalizeInit_C(p, str, indent); 1376 1408 } 1377 1409 syn FExp FDelayExp.myMaxDelayExp() = hasMax() ? getMax() : getDelay();
Note: See TracChangeset
for help on using the changeset viewer.