DIRECTORY Core USING [Wire], CoreBoole USING [Expression], Rope USING [ROPE]; CoreBooleExtras: CEDAR DEFINITIONS = BEGIN Expression: TYPE = CoreBoole.Expression; Wire: TYPE = Core.Wire; ROPE: TYPE = Rope.ROPE; Size: PROC [expr: Expression] RETURNS [size: INT _ 0]; Reorder: PROC [expr: Expression, public: Wire] RETURNS [newExpr: Expression]; ReorderVars: PROC [expr: Expression, vars: LIST OF ROPE] RETURNS [newExpr: Expression]; coreBoolePermuteProp: ATOM; Permute: PROC [expr: Expression, public: Wire] RETURNS [bestPermutedExpr: Expression, bestPermutedWire: Wire]; ExprsSeq: TYPE = REF ExprsSeqRec; ExprsSeqRec: TYPE = RECORD [c: SEQUENCE size: NAT OF Expression]; ReadPLAFile: PUBLIC PROC [fileName: ROPE, inputs, outputs: LIST OF ROPE _ NIL] RETURNS [exprs: ExprsSeq]; END. 2CoreBooleExtras.mesa Copyright c 1985 by Xerox Corporation. All rights reversed. Created by Bertrand Serlet August 13, 1985 5:38:56 pm PDT Bertrand Serlet January 20, 1986 3:10:48 pm PST Not yet fully implemented Produces a more efficient internal data structure for expr, keeping the same boolean semantics. The public given may contain the property coreBoolePermuteProp at any level. This property is one of the following: $Do -- try all possible permutations. This is the default; $DoNot, -- do not try to permute the components of this wire; $DoNotButDoSons, -- do not try to permute, but each component may be internally permuted, according to its own properties; $DoNotApartReverse, -- only reverse permutation may be tried. Sons are permuted, according to their own properties. The public given may contain wires which are not actually used in expr. The resulting bestPermutedWire is a valid permutation of public which gives a denser representation, and bestPermutedExpr is the denser expression corresponding to bestPermutedWire ordering. ΚΥ˜– "Cedar" stylešœ™Jšœ Οmœ1™