File: MakePLA.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Created by: Mayo, July 16, 1984 3:34:59 pm PDT
Last Edited by: Mayo, August 31, 1984 0:18:42 am PDT
-- Make a PLA module.
DIRECTORY
Parquet USING [Context, Module],
BoolOps USING [TruthTable],
Rope USING [ROPE];
MakePLA: CEDAR DEFINITIONS = BEGIN
Error: ERROR[ec: ErrorCode, msg: Rope.ROPE];
ErrorCode: TYPE = {Null,   -- never raised
NoDescription,     -- you must have one
NoTruthTable,     -- you must have one
MissingTile,      -- a required tile was missing from the tile set
ParameterErrors,     -- errors found in table passed to ReadParameters
TileSet,      -- something was wrong with the tile set
NoDump      -- could not dump truth table to file
};
-- create a PLA from a description
Create: PROC [context: Parquet.Context] RETURNS [Parquet.Module];
-- get the truth table from a description
FetchTT: PROC [context: Parquet.Context] RETURNS [inputNames, outputNames: LIST OF Rope.ROPE, truthTable: BoolOps.TruthTable];
-- always provides the right number of input and output names
END.