1Fri Dec 5 11:25:01 1997 Steven Eker <eker@lilac.csl.sri.com> 2 3 * A_Symbol.cc (finalizeSortInfo): deleted 4 5 * A_Symbol.hh (class A_Symbol): deleted finalizeSortInfo() decl 6 7Thu Dec 4 12:54:26 1997 Steven Eker <eker@lilac.csl.sri.com> 8 9 * A_Symbol.cc (A_Symbol): deleted inert arg 10 11 * A_Symbol.hh (class A_Symbol): deleted inert arg from ctor decl 12 13Tue Dec 2 16:41:48 1997 Steven Eker <eker@lilac.csl.sri.com> 14 15 * A_Symbol.cc (copyAndReduceSubterms): use DagNode::copyAndReduce() 16 17Mon Dec 1 12:11:25 1997 Steven Eker <eker@lilac.csl.sri.com> 18 19 * A_Symbol.cc (eqRewrite): use getPermuteStrategy() 20 21 * A_GreedyMatcher.cc (greedyMatchVariableBlock): PermuteSymbol -> 22 AssociativeSymbol (*3) 23 24 * A_DagNode.cc (copyEagerUptoReduced2): use getPermuteStrategy(); 25 PermuteSymbol -> BinarySymbol 26 27 * A_LhsCompiler.cc (compileLhs): PermuteSymbol -> AssociativeSymbol 28 29 * A_Term.cc (findEagerVariables): use getPermuteStrategy(); 30 PermuteSymbol -> BinarySymbol (*3) 31 (markEagerArguments): use getPermuteStrategy(); 32 PermuteSymbol -> BinarySymbol 33 34 * A_LhsAutomaton.hh (class A_LhsAutomaton): PermuteSymbol -> 35 AssociativeSymbol 36 37 * A_Symbol.cc (A_Symbol): PermuteSymbol -> AssociativeSymbol 38 (eqRewrite): remove PermuteSymbol context (*3) 39 40 * A_Symbol.hh (class A_Symbol): PermuteSymbol -> AssociativeSymbol 41 42Tue Nov 25 11:58:40 1997 Steven Eker <eker@lilac.csl.sri.com> 43 44 * A_RhsAutomaton.cc (buildAliens): deleted 45 (dump): implemented 46 47 * A_RhsAutomaton.hh (class A_RhsAutomaton): updated dump() decl; 48 deleted addAlien(), buildAliens() decls; deleted aliens data 49 member 50 (addAlien): deleted 51 52 * A_LhsAutomaton.cc (dump): updated 53 54 * A_LhsAutomaton.hh (class A_LhsAutomaton): updated dump() decl 55 56===============================Engine33=================================================== 57 58Tue Nov 11 17:04:26 1997 Steven Eker <eker@lilac.csl.sri.com> 59 60 * A_LhsAutomaton.cc (forcedLoneVariableCase): fixed long standing 61 bug; in lone variable bound case if b->symbol() != topSymbol then 62 we need to check for nrSubjects != 1 to return false and not 63 nrSubjects == 1 64 65===============================Engine31=================================================== 66 67Wed Oct 29 15:35:35 1997 Steven Eker <eker@lilac.csl.sri.com> 68 69 * A_Subproblem.cc (solveVariableBlocks): setWholeFlag() -> 70 setMatchedWhole() 71 72 * A_DagNode.cc (matchVariableWithExtension): call setValidAfterMatch(false) 73 74 * A_GreedyMatcher.cc (greedyMatch): setWholeFlag() -> 75 setMatchedWhole() (7 places) 76 (greedyMatch): call setValidAfterMatch(true) if there is extension 77 info 78 79 * A_FullMatcher.cc (fullMatch): call setValidAfterMatch(false) if 80 there is extension information 81 82 * A_LhsAutomaton.cc (match): move matchAtTop == (extensionInfo != 83 0) assertion to after check of top symbol since caller need not know 84 that we can't collapse and could fail to pass us extensionInfo if 85 subject was in a theory without extension. 86 87 * A_ExtensionInfo.cc (copy): use setValidAfterMatch(), 88 validAfterMatch() and setMatchedWhole() 89 (makeClone): use setValidAfterMatch(), validAfterMatch() and 90 setMatchedWhole() 91 92Mon Oct 27 11:54:51 1997 Steven Eker <eker@lilac.csl.sri.com> 93 94 * A_ExtensionInfo.cc (makeClone): added 95 (copy): added 96 97 * A_ExtensionInfo.hh (class A_ExtensionInfo): added decls for 98 makeClone() and copy() 99 (class A_ExtensionInfo): subject made non const in order to do copy 100 101Fri Oct 24 14:59:25 1997 Steven Eker <eker@lilac.csl.sri.com> 102 103 * A_Symbol.cc (ruleRewrite): use new A_ExtensionInfo ctor 104 (eqRewrite): use new A_ExtensionInfo ctor (3 places) 105 106 * A_DagNode.cc (makeExtensionInfo): use new A_ExtensionInfo ctor 107 108 * A_DagNode.hh (class A_DagNode): class A_ExtensionInfo is now a friend 109 110 * A_Theory.cc: deleted 111 112 * A_ExtensionInfo.cc: created 113 114 * A_ExtensionInfo.hh (class A_ExtensionInfo): added data member 115 subject and decls for explicit ctor and buildMatchedPortion() 116 (A_ExtensionInfo): added 117 118Tue Oct 21 12:32:51 1997 Steven Eker <eker@lilac.csl.sri.com> 119 120 * A_Term.cc (dagify2): switched to new convention 121 122 * A_Term.hh (class A_Term): switched dagify2() decl to new convention 123 124Wed Oct 15 16:12:36 1997 Steven Eker <eker@lilac.csl.sri.com> 125 126 * A_LhsCompiler.cc (compileLhs): use VariableTerm::dynamicCast() 127 (2 places) 128 (addFixedLengthBlock): use VariableTerm::dynamicCast() 129 (findConstraintPropagationSequence): use 130 VariableTerm::dynamicCast() (2 places) 131 132 * A_Term.cc (compileRhs): use VariableTerm::dynamicCast() 133 134 * A_Symbol.cc (A_Symbol): rewritten for new symbol conventions 135 136 * A_Symbol.hh (class A_Symbol): removed constructor arg from ctor 137 138Fri Oct 10 18:42:16 1997 Steven Eker <eker@lilac.csl.sri.com> 139 140 * A_LhsAutomaton.hh (class A_LhsAutomaton): VariableIndex -> VariableInfo 141 142 * A_LhsAutomaton.cc (dump): VariableIndex -> VariableInfo 143 (dump): index2Symbol() -> index2Variable() 144 145===============================Engine30=================================================== 146 147Tue Oct 7 15:38:16 1997 Steven Eker <eker@lilac.csl.sri.com> 148 149 * A_Symbol.cc (makeDagNode): added 150 151 * A_Symbol.hh (class A_Symbol): added decl for makeDagNode() 152 153Fri Oct 3 19:35:02 1997 Steven Eker <eker@lilac.csl.sri.com> 154 155 * A_Term.cc (compileRhs): DataSet -> TermSet 156 (dagify2): DataSet -> TermSet 157 158 * A_Term.hh (class A_Term): DataSet -> TermSet 159 160===============================Engine29=================================================== 161 162Thu Oct 2 18:01:02 1997 Steven Eker <eker@lilac.csl.sri.com> 163 164 * A_Term.hh (class A_Term): updated compileRhs() decl 165 166 * A_Term.cc (compileRhs): adapted to use DataSet& compiled 167 168Tue Sep 30 12:39:29 1997 Steven Eker <eker@lilac.csl.sri.com> 169 170 * A_Term.hh (class A_Term): dagify() decl chaged to dagify2() 171 172 * A_Term.cc (normalize): now calculate hash value 173 (dagify2): adapted from dagify() 174 175Thu Sep 25 16:49:08 1997 Steven Eker <eker@lilac.csl.sri.com> 176 177 * A_Symbol.hh (class A_Symbol): deleted decl for specificRewrite() 178 179 * A_Symbol.cc (specificRewrite): deleted 180 181===============================Engine28=================================================== 182 183Tue Aug 19 12:37:48 1997 Steven Eker <eker@lilac.csl.sri.com> 184 185 * A_DagNode.hh (getArgument): added 186 (nrArgs): added 187 (class A_DagNode): added nrArgs() and getArgument() decls as fast 188 theory specific interface to argument list for code outside the 189 A_Theory that is A_Theory aware (maybe classes derived from A_Symbol). 190 191Fri Jul 25 18:02:05 1997 Steven Eker <eker@lilac.csl.sri.com> 192 193 * A_DagNode.cc (partialReplace): removed Assert(getSortIndex() == 194 Sort::SORT_UNKNOWN, cerr << "shouldn't have valid sort"); since if 195 node was original created by matcher it may well have valid sort 196 197 198Thu Jul 24 11:39:15 1997 Steven Eker <eker@lilac.csl.sri.com> 199 200 * A_Symbol.cc (eqRewrite): added normalizeAtTop() calls after 201 sort computation for LAZY and SEMI_EAGER cases; this fixes a bug 202 introduced by just-in-time normalization 203 204Wed Jul 23 11:46:25 1997 Steven Eker <eker@lilac.csl.sri.com> 205 206 * A_DagNode.cc (partialReplace): added call to repudiateSortInfo() 207 208 * A_Term.cc (normalize): added full flag; only do flattening if 209 full flag true 210 211 * A_Term.hh (class A_Term): added full flag to normalize() 212 213Mon Jul 21 11:27:59 1997 Steven Eker <eker@lilac.csl.sri.com> 214 215 * A_Symbol.cc (computeTrueSort): do normalization 216 217 * A_DagNode.cc (partialReplace): simplified; no longer normalize 218 (partialConstruct): simplified; no longer normalize 219 (copyWithReplacement): simplified; no longer normalize 220 (partialReplace): put in Assert to ensure we don't have a valid sort 221 222 * A_RhsAutomaton.hh (class A_RhsAutomaton): updated buildAliens() decl 223 224 * A_RhsAutomaton.cc (buildAliens): simplified; no longer do 225 flattening calcs 226 (buildArguments): simplified; no longer flatten 227 (replace): simplified 228 (construct): simplified 229 230===============================Engine26b=================================================== 231 232Tue Jul 15 15:42:42 1997 Steven Eker <eker@lilac.csl.sri.com> 233 234 * A_Symbol.cc (A_Symbol): added inert arg 235 (eqRewrite): changed inert() call to equationFree() 236 237 * A_Symbol.hh (class A_Symbol): added inert arg to ctor 238 239================================Engine26==================================================== 240 241Fri Jun 27 16:13:40 1997 Steven Eker <eker@lilac.csl.sri.com> 242 243 * A_DagNode.hh (class A_DagNode): copyEagerUptoReduced2() and 244 clearCopyPointers2() made private 245 246 * A_Symbol.cc (copyAndReduceSubterms): copyEagerUptoReduced() and 247 clearCopyPointers() replaced by copyReducible() 248 249Wed Jun 25 15:16:51 1997 Steven Eker <eker@lilac.csl.sri.com> 250 251 * A_Symbol.cc: added #include "variable.hh" 252 253Tue Jun 24 16:22:21 1997 Steven Eker <eker@lilac.csl.sri.com> 254 255 * A_LhsAutomaton.hh (class A_LhsAutomaton): Variable* -> 256 VariableTerm* for addRigidVariable() and addFlexVariable() decls 257 258 * A_LhsAutomaton.cc (addRigidVariable): use VariableTerm* 259 (addFlexVariable): use VariableTerm* 260 261 * A_LhsCompiler.cc (analyseConstraintPropagation): use VariableTerm::downCast() 262 (compileLhs): use VariableTerm::downCast() 263 (addFixedLengthBlock): use VariableTerm::downCast() 264 (findConstraintPropagationSequence): use VariableTerm::downCast() 265 266 * A_Term.cc: added #include "variableTerm.hh" 267 (compileRhs): use VariableTerm::downCast() 268 269Thu Jun 19 10:38:43 1997 Steven Eker <eker@lilac.csl.sri.com> 270 271 * A_Symbol.cc: deleted #include "unionFind.hh" 272 273Tue Jun 17 16:55:43 1997 Steven Eker <eker@lilac.csl.sri.com> 274 275 * A_Symbol.hh (class A_Symbol): deleted decl for compileOpDeclarations() 276 277 * A_Symbol.cc (compileOpDeclarations): deleted 278 279 * A_Symbol.hh (class A_Symbol): added decl for finalizeSortInfo() 280 281 * A_Symbol.cc (finalizeSortInfo): added 282 283Fri Jun 6 18:44:49 1997 Steven Eker <eker@lilac.csl.sri.com> 284 285 * A_DagNode.hh (class A_DagNode): matchVariableWithExtension() 286 decl added 287 288 * A_Symbol.hh (class A_Symbol): matchVariableWithExtension() decl 289 deleted 290 291 * A_DagNode.cc (matchVariableWithExtension): added 292 293 * A_Symbol.cc (matchVariableWithExtension): deleted 294 295Thu Jun 5 11:55:09 1997 Steven Eker <eker@lilac.csl.sri.com> 296 297 * A_DagNode.cc (copyEagerUptoReduced2): adapted from old 298 copyEagerUptoReduced() 299 (clearCopyPointers2): adapted from old clearCopyPointers() 300 301 * A_DagNode.hh (class A_DagNode): decls for 302 clearCopyPointers() and copyEagerUptoReduced() changed 303 304 * A_Subproblem.hh (class A_Subproblem): updated 305 computeAssignment() decl 306 307 * A_Subproblem.cc (bindVariables): use checkSort() to check the 308 sort of DagNode returned from computeAssignment(); don't pass 309 context to computeAssignment() 310 (computeAssignment): deleted context arg; don't compute sort of 311 newly created DagNode 312 313 * A_Symbol.cc (A_Symbol): don't pass stable arg to PermuteSymbol() 314 315==============================Engine24==================================== 316 317Wed May 14 15:43:13 1997 Steven Eker <eker@lilac.csl.sri.com> 318 319 * A_Symbol.cc (eqRewrite): changed comment on repudiate call now 320 that inErrorSort() can leave sort info behind 321 322Tue May 13 10:41:19 1997 Steven Eker <eker@lilac.csl.sri.com> 323 324 * Makefile: make libA_Theory.a instead of libAC_Theory.a 325 326 * A_LhsAutomaton.cc (forcedLoneVariableCase): use 327 DagNode::checkProblem() to simplify code 328 Commented out "sortCheckSubproblem.hh" 329 330Thu Apr 10 16:19:35 1997 Steven Eker <eker@lilac.csl.sri.com> 331 332 * A_LhsAutomaton.cc (forcedLoneVariableCase): must repudiateSort() in 333 the case where the base sort is not small enough and 334 the top symbol is not sort constraint free as the 335 base sort we calculated may not be the true sort and will inhibit 336 the calculation of the true sort during the solution of the sort 337 check subprblem. 338 339Fri Mar 28 16:55:19 1997 Steven Eker <eker@lilac.csl.sri.com> 340 341 * A_DagNode.cc (makeExtensionInfo): added 342 343 * A_DagNode.hh (class A_DagNode): added decl for makeExtensionInfo() 344 345Thu Jan 9 15:45:25 1997 Steven Eker <eker@lilac.csl.sri.com> 346 347 * A_DagNode.cc (overwriteWithClone): fixed serious bug 348 where we were copying sort of overwritten node rather than 349 overwriting node 350 351Tue Jan 7 11:39:30 1997 Steven Eker <eker@lilac.csl.sri.com> 352 353 * A_Symbol.cc (eqRewrite): fixed bug in lazy case where we were 354 computing a base sort and then returning with out repudiating it 355 if it was not the error sort. Use new inerrorSort() function. 356 (eqRewrite): removed superfluous repudiateSortInfo() from 357 semi-eager case. 358 (eqRewrite): replaced calls to repudiateSortInfo() since 359 applyReplace() may compute true sort which may then have been 360 invalidated by rewriting below 361 362Tue Dec 24 18:04:23 1996 Steven Eker <eker@lilac.csl.sri.com> 363 364 * A_LhsAutomaton.cc (forcedLoneVariableCase): rewritten to use 365 computeBaseSort() and sortConstraintFree() 366 367 * A_Subproblem.cc (computeAssignment): 368 computeSortWhilePreservingContext() -> 369 computeTrueSortWhilePreservingContext() 370 371 * A_Symbol.cc (eqRewrite): adapted from rewrite(); use 372 computeTrueSort() and computeBaseSort() 373 (computeTrueSort): adapted from computeSort() 374 (computeBaseSort): adapted from findBaseSort() 375 376 * A_Symbol.hh (class A_Symbol): computeSort() replaced by 377 computeBaseSort() and computeTrueSort(); findBaseSort() deleted 378 (class A_Symbol): rewrite() -> eqRewrite() 379 380Thu Dec 19 14:17:24 1996 Steven Eker <eker@lilac.csl.sri.com> 381 382 * A_DagNode.cc (makeClone): copy sort information to avoid recomputation 383 384Thu Dec 12 17:49:03 1996 Steven Eker <eker@lilac.csl.sri.com> 385 386 * A_DagNode.cc (overwriteWithClone): copy sort information; this 387 is needed so then when we rewrite with a collapse equation we do 388 not lose sort infomation with the possibility of infinite looping 389 on foreign sort constraints 390 391Wed Dec 11 11:55:43 1996 Steven Eker <eker@lilac.csl.sri.com> 392 393 * A_Symbol.cc (findBaseSort): sortConstraintFree() used in place 394 of obsolete test (2 places) 395 396Mon Dec 9 14:40:21 1996 Steven Eker <eker@lilac.csl.sri.com> 397 398 * A_Symbol.cc (computeSort): modified to use new 399 constrainToSmallerSort() convections 400 401Mon Dec 2 11:07:58 1996 Steven Eker <eker@lilac.csl.sri.com> 402 403 * A_Subproblem.cc (addTopVariable): put bounds args in the correct 404 order! 405 406 * A_Symbol.cc (rewrite): use inert() rather then checking for 407 equations because there may be foreign equations 408 409 * A_FullMatcher.cc (addVariableBlocks): updated addTopVariable() call 410 411 * A_Subproblem.cc (buildPartition): make use of lowerBound in 412 TopVariable struct 413 (addTopVariable): store lowerBound 414 415 * A_Subproblem.hh (class A_Subproblem): added lowerBound to 416 TopVariable struct 417 418Wed Nov 27 17:10:12 1996 Steven Eker <eker@lilac.csl.sri.com> 419 420 * A_Symbol.cc (matchVariableWithExtension): implemented 421 422 * A_Symbol.hh (class A_Symbol): matchVariableWithExtension() added 423 424Mon Nov 25 19:01:59 1996 Steven Eker <eker@lilac.csl.sri.com> 425 426 * A_Symbol.cc (A_Symbol): added constructor arg 427 428Thu Nov 14 18:07:59 1996 Steven Eker <eker@lilac.csl.sri.com> 429 430 * A_DagNode.cc (makeClone): added 431 432Tue Oct 29 17:05:54 1996 Steven Eker <eker@lilac.csl.sri.com> 433 434 * A_Symbol.cc (rewrite): updates to nrArgs removed as nrArgs is 435 not used afterwards; Assert checking that sort is invalid after 436 applyReduce() in semi-eager case removed since applyReduce() may 437 have good reasons for computing and storing the subjects sorts 438 (e.g. a lhs that parses to the error sort or a foreign lhs that is 439 (or collapses to) a variable). 440 441Tue Oct 15 17:48:41 1996 Steven Eker <eker@lilac.csl.sri.com> 442 443 * A_RhsAutomaton.cc (dump): added indentLevel arg 444 445 * A_LhsAutomaton.cc (dump): rewritten to handle indentation 446 447Fri Oct 11 16:44:55 1996 Steven Eker <eker@lilac.csl.sri.com> 448 449 * A_Symbol.cc (partialConstruct): deleted 450 (partialReplace): deleted 451 452 * A_DagNode.cc (partialReplace): added 453 (partialConstruct): added 454 455Wed Oct 2 19:01:26 1996 Steven Eker <eker@lilac.csl.sri.com> 456 457 * A_DagNode.cc (normalizeAtTop): added call to DagNode::okToCollectGarbage() 458 459Tue Oct 1 14:22:11 1996 Steven Eker <eker@lilac.csl.sri.com> 460 461 * A_DagNode.cc (normalizeAtTop): removed trackStorage() call 462 463 * A_Symbol.cc (partialReplace): removed trackStorage() call 464 465 * A_DagNode.cc (markArguments): call to evacuate() added 466 467 * A_DagNode.hh (A_DagNode): removed trackStorage() call 468 469 * A_DagNode.cc (A_DagNode): removed trackStorage() call 470 471 * A_Term.cc: Vector -> ArgVec 472 473 * A_Symbol.cc: Vector -> ArgVec 474 475 * A_Subproblem.cc: Vector -> ArgVec 476 477 * A_RhsAutomaton.cc: Vector -> ArgVec 478 479 * A_LhsAutomaton.cc: Vector -> ArgVec 480 481 * A_GreedyMatcher.cc: Vector -> ArgVec 482 483 * A_FullMatcher.cc: Vector -> ArgVec 484 485 * A_DagNode.cc: Vector -> ArgVec 486 487 * A_RhsAutomaton.hh (class A_RhsAutomaton): Vector -> ArgVec 488 489 * A_DagNode.hh (class A_DagNode): Vector -> ArgVec 490 491 * A_LhsAutomaton.hh (class A_LhsAutomaton): Vector -> ArgVec 492 493 * A_DagArgumentIterator.hh (class A_DagArgumentIterator): Vector -> ArgVec 494 495Wed Sep 25 14:21:39 1996 Steven Eker <eker@lilac.csl.sri.com> 496 497 * A_DagNode.cc (stackArguments): added 498 (copyWithReplacement): added 499 500 * A_Symbol.cc (ruleRewrite): added 501 (specificRewrite): added 502 (partialConstruct): added 503 504Tue Sep 24 14:41:39 1996 Steven Eker <eker@lilac.csl.sri.com> 505 506 * A_Subproblem.cc (addNode): remember last blockPair has dummy 507 pattern part with no targets; so we have to change test to 508 blockNr + 1 < blockPairs.length() - 1 509 510 * A_FullMatcher.cc (buildLeftmostPath): deal with cases where 511 first rigid block has no (unbound) variables to the left of it, last rigid 512 block has no (unbound) variables to the right of it, and single 513 rigid block has no (unbound) variables either side of it 514 (addRemainingPaths): implemented 515 516 * A_Subproblem.cc (bindVariables): Asserts regarding part length 517 replaced by if statements that return false: non-linear variable 518 blocks can cause bound variable to have wrong length part 519 (bindVariables): fix index: i -> j 520 521 * A_Subproblem.hh (class A_Subproblem): deleted boundVariablesOK() 522 decl 523 524 * A_Subproblem.cc (bindVariables): major rewrite; now does the 525 work of boundVariablesOK() as well 526 (buildPartition): set boundByUs flag correctly in non-linear 527 variable block case 528 (solveVariableBlock): removed unbindVariables() temp fix 529 530Mon Sep 23 17:50:22 1996 Steven Eker <eker@lilac.csl.sri.com> 531 532 * A_Subproblem.cc (solvePatternBlock): Assert condition should be 533 >= instead of > 534 (deepSelfDestruct): don't deepSelfDestruct() null subproblem 535 (solveVariableBlock): big mess regarding bound and unbound 536 variables in different involacations on same subproblem; temp fix 537 is to unbind variables at start of non-first invocation 538 (solvePatternBlocks): need to initialize selectedNode first first 539 blockPair correctly 540 541 * A_FullMatcher.cc (buildLeftmostPath): nrRigid + 1 block pairs in 542 subproblem 543 (buildLeftmostPath): formula for nextSubject fixed 544 545Fri Sep 20 16:11:55 1996 Steven Eker <eker@lilac.csl.sri.com> 546 547 * A_Subproblem.cc: finally compiled after much rewriting 548 (addNode): added 549 (addTopVariable): added 550 551Fri Sep 13 18:29:49 1996 Steven Eker <eker@lilac.csl.sri.com> 552 553 * A_FullMatcher.cc (determineRigidBlocks): calculate rigid blocks 554 in new way 555 556Thu Sep 12 18:24:34 1996 Steven Eker <eker@lilac.csl.sri.com> 557 558 * A_Subproblem.hh (class A_Subproblem): added BlockPair struct to 559 try to simplify VariableBlock/RigidBlock handling 560 561Wed Sep 11 19:24:04 1996 Steven Eker <eker@lilac.csl.sri.com> 562 563 * A_LhsAutomaton.hh (class A_LhsAutomaton): added struct 564 RigidBlock plus match-time storage for rigidBlocks 565 566Thu Aug 29 12:13:34 1996 Steven Eker <eker@nmos.csl.sri.com> 567 568 * A_Subproblem.hh (class A_Subproblem): have at most two edges 569 exits from each node; a down edge and a right edge. 570 571Tue Aug 6 15:58:22 1996 Steven Eker <eker@nmos.csl.sri.com> 572 573 * A_LhsCompiler.cc (findConstraintPropagationSequence): matchAtTop 574 arg removed from calls to analyseConstraintPropagation() 575 576 * A_Term.hh (class A_Term): boundAbove arg removed from addFixedLengthBlock() 577 578 * A_LhsCompiler.cc: created by extracting match compilation code 579 form A_Term.cc 580 (analyseConstraintPropagation): matchAtTop arg removed 581 (compileLhs): boundAbove arg and code with updated it and passed 582 it deleted 583 (addFixedLengthBlock): boundAbove arg and code with updated it and passed 584 it deleted 585 586 * A_Term.hh (class A_Term): matchAtTop arg removed from 587 analyseConstraintPropagation(); boundAbove arg removed from compileLhs() 588 589Wed Jul 31 17:37:28 1996 Steven Eker <eker@nmos.csl.sri.com> 590 591 * A_Symbol.cc (makeTerm): added 592 593Fri Jul 26 16:49:46 1996 Steven Eker <eker@nmos.csl.sri.com> 594 595 * A_GreedyMatcher.cc (greedyMatch): set extension whole flag correctly 596 (greedyMatch): need to update spare in the case that we enf the 597 main loop with a rigid block still to process 598 599 * A_Term.cc (compileLhs): call addFixedLengthBlock() with 600 boundAbove, boundUniquely the right way around 601 (compileLhs): allow flex part to end with fixed length block 602 if we have extension 603 (compileLhs): need to compile fixed length block that ends the 604 flex part if we have extension 605 606 * A_GreedyMatcher.cc (greedyMatch): heavily revised; now store 607 "spare" rather than "rigidBlockSubjectsNeeded" 608 (greedyMatchVariableBlock): calculate spare correctly 609 610Thu Jul 25 11:13:37 1996 Steven Eker <eker@nmos.csl.sri.com> 611 612 * A_GreedyMatcher.cc (greedyMatchFixedLengthBlock): no longer do 613 substitution copying; pass back shift factor rather than next 614 shift; code simplified 615 (greedyMatchRigidBlock): do substitution copying 616 (greedyMatch): heavily revised; variableBlockLength no longer needed 617 618 * A_LhsAutomaton.cc (complete): code corrected to do blockLengths for 619 fixed length in _flex_ part (not rigid part!) 620 621Wed Jul 24 16:44:37 1996 Steven Eker <eker@nmos.csl.sri.com> 622 623 * A_LhsAutomaton.cc (dump): rewritten 624 (complete): added code to fill in blockLength for each rigid subterm 625 626 * A_Subproblem.cc: created 627 628 * A_Subproblem.hh (class A_Subproblem): created 629 630Mon Jul 22 10:44:25 1996 Steven Eker <eker@ponder.csl.sri.com> 631 632 * A_DagNode.cc (eliminateSubject): rewritten, now only eliminates 633 target from fixed position 634 (eliminateSubject): rewritten; now only examines single position 635 636Sat Jul 20 18:02:24 1996 Steven Eker <eker@ponder.csl.sri.com> 637 638 * A_LhsAutomaton.hh (class A_LhsAutomaton): maxMatchable field in 639 struct Subterm deleted 640 641 * A_GreedyMatcher.cc (greedyMatchVariableBlock): extensionInfo 642 parameter deleted 643 (greedyMatch): rewritten yet again; now group bound variables with 644 fixed length blocks to make rigid blocks which are matched as 645 whoel units 646 647Fri Jul 19 10:34:55 1996 Steven Eker <eker@ponder.csl.sri.com> 648 649 * A_GreedyMatcher.cc (greedyMatchVariableBlock): rewritten from scratch 650 (greedyMatch): heavily rewritten 651 652 * A_LhsAutomaton.cc: split off greedy matcher into A_GreedyMatcher.cc 653 654Thu Jul 18 14:28:16 1996 Steven Eker <eker@ponder.csl.sri.com> 655 656 * A_Term.cc (addFixedLengthBlock): added 657 658 * A_Term.hh (symbol): added 659 660 * A_Term.cc (findConstraintPropagationSequence): when two 661 sequences bind the same number of variables uniquely; choose the 662 longer sequenece. Store the position of the first flex arg in 663 bestSequence structure so we can propagate it easily in the lone 664 variable case 665 (analyseConstraintPropagation): add lone variable in flex part to 666 those variables that we guarantee to bind uniquely 667 668Tue Jul 16 19:13:08 1996 Steven Eker <eker@ponder.csl.sri.com> 669 670 * A_LhsAutomaton.cc (greedyMatchVariableBlock): rewritten 671 672Mon Jul 15 16:31:25 1996 Steven Eker <eker@ponder.csl.sri.com> 673 674 * A_LhsAutomaton.cc (greedyMatchFixedLengthBlock2): renamed from 675 matchFixedLengthBlock() 676 677Thu Jul 11 10:42:29 1996 Steven Eker <eker@ponder.csl.sri.com> 678 679 * A_LhsAutomaton.cc (updateWholeBounds): use plus() to simplify 680 (updateFlexBounds): use plus() to simplify 681 682 * A_ExtensionInfo.hh (setMatched): deleted 683 (setFirstMatched): added 684 (setLastMatched): added 685 686 * A_DagNode.cc (eliminateSubject): added 687 688 * A_LhsAutomaton.cc (nextMatchForFixedLengthBlock): added 689 (matchFixedLengthBlock): added 690 (compareArgArrays): added 691 692Tue Jul 9 17:20:35 1996 Steven Eker <eker@ponder.csl.sri.com> 693 694 * A_Symbol.cc (findBaseSort): added code to use uniform sort 695 structure if it exists 696 697Sat Jul 6 17:24:21 1996 Steven Eker <eker@ponder.csl.sri.com> 698 699 * A_Symbol.cc (partialReplace): dded code to track storage 700 during expansion 701 702 * A_DagNode.cc (normalizeAtTop): added code to track storage 703 during expansion 704 705Fri Jul 5 17:46:56 1996 Steven Eker <eker@ponder.csl.sri.com> 706 707 * A_LhsAutomaton.cc (A_LhsAutomaton): fixed flex bound 708 initilaization problem 709 710 * A_Term.cc (findConstraintPropagationSequence): added 711 712Wed Jul 3 11:41:32 1996 Steven Eker <eker@ponder.csl.sri.com> 713 714 * A_Term.cc (compileLhs): crude implementation 715 (analyseConstraintPropagation): implemented 716 717 * A_LhsAutomaton.cc (updateWholeBounds): added 718 (updateFlexBounds): added 719 (addRigidVariable): added 720 (addFlexVariable): added 721 (addRigidGroundAlien): added 722 (addRigidNonGroundAlien): added 723 (addFlexGroundAlien): added 724 (addFlexNonGroundAlien): added 725 (complete): added 726 727Tue Jul 2 16:06:28 1996 Steven Eker <eker@ponder.csl.sri.com> 728 729 * A_LhsAutomaton.cc (forcedLoneVariableCase): completed 730 731Sat Jun 29 15:31:14 1996 Steven Eker <eker@ponder.csl.sri.com> 732 733 * A_LhsAutomaton.cc (matchRigidPart): added 734 735