CrankAnalyze.mesa
Copyright Ó 1987, 1991 by Xerox Corporation. All rights reserved.
Michael Plass, August 27, 1990 9:52 am PDT
DIRECTORY
CrankTypes USING [AttributedNode, Context, EnumerationItem, FieldList, Tree, TypeCode, TypeGraph, TypeRep, VariantList],
Rope USING [ROPE];
CrankAnalyze: CEDAR DEFINITIONS
~ BEGIN OPEN CrankTypes, Rope;
ConvertFile: PROC [fileName: ROPE, structure: BOOL ¬ TRUE, analyze: BOOL ¬ TRUE, skipAttributes: LIST OF ATOM ¬ NIL] RETURNS [fullFName: ROPE];
Convert: PROC [fileName: ROPE, analyze: BOOL, action: PROC [tree: Tree, context: Context]];
GetSymbols: PROC [context: Context, interfaceFileName: ROPE] RETURNS [REF TypeRep.record];
FillTypeAttributes: PROC [typeGraph: TypeGraph, tree: Tree];
AnalyzeModule: PROC [context: Context, tree: Tree];
AnalyzeDecl: PROC [context: Context, tree: Tree, parent: AttributedNode, pass: [1..3]] RETURNS [BOOL];
AnalyzeTypeDecl: PROC [context: Context, tree: Tree, parent: AttributedNode, pass: [1..3]] RETURNS [BOOL];
AnalyzeBodyOrExpression: PROC [context: Context, tree: Tree, parent: AttributedNode, pass: [1..3]];
AnalyzeExpression: PROC [context: Context, tree: Tree] RETURNS [BOOL];
AnalyzeStatement: PROC [context: Context, tree: Tree];
FieldListFromEnumeration: PROC [items: LIST OF EnumerationItem, rangeType: TypeCode] RETURNS [FieldList];
GetConstructorFieldList: PROC [context: Context, neededTypeCode: TypeCode] RETURNS [FieldList];
AnalyzeFieldList: PROC [context: Context, fieldListNode: Tree] RETURNS [FieldList];
AnalyzeVariantList: PROC [context: Context, variantListNode: Tree] RETURNS [VariantList];
AnalyzeTypePass: PROC [context: Context, tree: Tree, pass: [1..3]] RETURNS [BOOL];
AnalyzeType: PROC [context: Context, tree: Tree];
Does all passes.
ProcessModuleList: PROC [context: Context, moduleList: Tree, import: BOOL];
ProcessSharesList: PROC [context: Context, moduleList: Tree];
AddDirectoryItem: PROC [context: Context, tree: Tree];
END.