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];
~
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];