DIRECTORY OpPrecParse, OrderedSymbolTableRef, Rope, RoseTypes, TextNode; RoseTranslateTypes: CEDAR DEFINITIONS = BEGIN LORA: TYPE = LIST OF REF ANY; LOLORA: TYPE = LIST OF LORA; ROPE: TYPE = Rope.ROPE; RopeList: TYPE = LIST OF ROPE; SymbolTable: TYPE = OrderedSymbolTableRef.Table; NodeType: TYPE = RoseTypes.NodeType; Mesa: TYPE = RoseTypes.Mesa; SourceRange: TYPE = OpPrecParse.SourceRange; nullSR: SourceRange = OpPrecParse.nullSR; Assertions: TYPE = RoseTypes.Assertions; SymbolTableEntry: TYPE = REF SymbolTableEntryRep; SymbolTableEntryRep: TYPE = RECORD [ name: ROPE, value: SELECT type: SymbolTableEntryType FROM nodeTypeConstructor => [stc: NodeTypeConstructor], cellClass => [ globvar: BOOL, definedIn: ROPE, cd: CellDef], node => [nodeType: NodeType], cellFn => [ definedIn: ROPE, cf: CellFn], ENDCASE]; SymbolTableEntryType: TYPE = {nodeTypeConstructor, cellClass, node, cellFn}; stcEntry: TYPE = REF SymbolTableEntryRep[nodeTypeConstructor]; ccEntry: TYPE = REF SymbolTableEntryRep[cellClass]; cfEntry: TYPE = REF SymbolTableEntryRep[cellFn]; nodeEntry: TYPE = REF SymbolTableEntryRep[node]; DigestedInterface: TYPE = REF DigestedInterfaceRep; DigestedInterfaceRep: TYPE = RECORD [ sr: SourceRange, asTable: SymbolTable, asList: InterfaceEltList, hasSwitchElt: BOOL _ FALSE]; InterfaceEltList: TYPE = LIST OF InterfaceElt; InterfaceElt: TYPE = REF InterfaceEltRep; InterfaceEltRep: TYPE = RECORD [ sr: SourceRange, name: ROPE, sti: SignalTypeInvocation, input, output, spare: BOOLEAN _ FALSE, assertions: Assertions _ NIL]; Invocation: TYPE = RECORD [ sr: SourceRange, name: ROPE, parms: REF ANY --UNION [BindingList, Args] ]; SignalTypeInvocation: TYPE = REF SignalTypeInvocationRep; SignalTypeInvocationRep: TYPE = RECORD [ sr: SourceRange, st: NodeType, invocation: Invocation]; Application: TYPE = REF ApplicationRep; ApplicationRep: TYPE = RECORD [ sr: SourceRange, subject: REF ANY, --UNION [ID, Application] args: REF ANY --UNION [BindingList, Args] ]; Args: TYPE = REF ArgsRep; ArgsRep: TYPE = RECORD [ sr: SourceRange, args: LIST OF Arg]; Arg: TYPE = REF ANY; --UNION [ID, Quoted, Int, Reel] Int: TYPE = REF IntRep; IntRep: TYPE = RECORD [ sr: SourceRange, i: INT]; Reel: TYPE = REF ReelRep; ReelRep: TYPE = RECORD [ sr: SourceRange, r: REAL]; CellFn: TYPE = REF CellFnRep; CellFnRep: TYPE = RECORD [ sr: SourceRange, args: BindingList _ NIL, cd: CellDef _ NIL, howToApply: CedarSource _ NIL]; CellDef: TYPE = REF CellDefRep; CellDefRep: TYPE = RECORD [ sr: SourceRange, interfaceLiteral: DigestedInterface _ NIL, interfaceSource: CedarSource _ NIL, stateInittable: BOOLEAN _ FALSE, ioRefTypeName, literalName: ROPE _ NIL, nameIsLiteral, ioCreatorGiven, stateGiven, initializerGiven, bbTestGiven, stTestGiven, initCTPropsGiven, expandGiven: BOOL _ FALSE, nameSource, ioCreatorSource, stateSource, initializerSource, bbTestSource, stTestSource, initCTPropsSource: CedarSource _ NIL, evalsGiven: ARRAY EvalType OF BOOLEAN _ ALL[FALSE], evalSources: ARRAY EvalType OF CedarSource _ ALL[NIL], expandCode: Statements _ NIL, portCount: CARDINAL _ 0, assertions: Assertions _ NIL, forFn: CellFn _ NIL]; EvalType: TYPE = {ValsChanged, InitQ, PropQ, InitUD, PropUD, FinalUD, EvalSimple, FindVicinity}; CedarSource: TYPE = REF CedarSourceRep; CedarSourceRep: TYPE = RECORD [sr: SourceRange, parent: TextNode.Ref]; CedarLiteral: TYPE = REF CedarLiteralRep; CedarLiteralRep: TYPE = RECORD [sr: SourceRange, cedar: ROPE]; RefAnyList: TYPE = REF RefAnyListRep; RefAnyListRep: TYPE = RECORD [ sr: SourceRange, l: LORA]; BindingList: TYPE = LIST OF Binding; Binding: TYPE = REF BindingRep; BindingRep: TYPE = RECORD [ sr: SourceRange, name: ROPE, value: REF ANY, assertions: Assertions _ NIL, initial: REF ANY --UNION [Quoted, CedarLiteral]-- _ NIL]; Quoted: TYPE = REF QuotedRep; QuotedRep: TYPE = RECORD [sr: SourceRange, rope: ROPE]; ID: TYPE = REF IDRep; IDRep: TYPE = RECORD [sr: SourceRange, rope: ROPE]; Statements: TYPE = REF StatementsRep; StatementsRep: TYPE = RECORD [ sr: SourceRange, statements: LORA, hasRefs: BOOL _ FALSE]; SquareBracketed: TYPE = REF SquareBracketedRep; SquareBracketedRep: TYPE = RECORD [ sr: SourceRange, subject: REF ANY --UNION [InterfaceElementList, BindingList]--]; error: REF ANY; NodeTypeConstructor: TYPE = PROC [parms: REF ANY --UNION [BindingList, Args]--] RETURNS [type: NodeType]; --ERRORS TypeConstructionError[msg: ROPE] TypeConstructionError: ERROR [msg: ROPE]; GetParm: PROC [n: [1..LAST[INTEGER]], name: ROPE, parms: REF ANY, default: REF ANY _ noDefault] RETURNS [it: REF ANY]; noDefault: REF ANY; END. RoseTranslateTypes.Mesa Last Edited by: Spreitzer, September 6, 1984 3:42:30 pm PDT Last Edited by: Barth, March 8, 1983 10:43 am Last Edited by: Gasbarro, August 16, 1984 2:11:17 pm PDT Familiar Types: Parse Tree Types: Vars: Defining Node Types: See SignalTypeRegistration ΚŽ˜J™Jšœ;™;J™-J™8Icode˜KšΟk œ?˜HK˜KšΠbxœœ œ˜'K˜Kš˜K˜šΟl™K˜Kš œœœœœœ˜Kš œœœœœ˜Kšœœœ˜Kš œ œœœœ˜Kšœ œ˜0Kšœ œ˜$Kšœœ˜Kšœ œ˜,Kšœ)˜)Kšœ œ˜(K˜—K˜šŸ™K˜Kšœœœ˜1šœœœ˜$Kšœœ˜ šœœ˜-K˜2šœ˜Kšœ œ˜Kšœ œ˜Kšœ ˜ —K˜˜ Kšœ œ˜K˜ —Kšœ˜ ——K˜Kšœœ2˜LK˜Kšœ œœ*˜>Kšœ œœ ˜3Kšœ œœ˜0Kšœ œœ˜0K˜Kšœœœ˜3šœœœ˜%K˜Kšœ˜Kšœ˜Kšœœœ˜—K˜Kšœœœœ˜.K˜Kšœœœ˜)šœœœ˜ K˜Kšœœ˜ Kšœ˜Kšœœœ˜&Kšœœ˜—K˜šœ œœ˜K˜Kšœœ˜ KšœœœΟc˜*K˜—K˜Kšœœœ˜9šœœœ˜(K˜K˜ K˜—K˜Kšœ œœ˜'šœœœ˜K˜Kšœ œœ ˜+Kšœœœ ˜*Kšœ˜—K˜Kšœœœ ˜šœ œœ˜K˜Kšœœœ˜—K˜Kšœœœœ ˜4K˜Kšœœœ˜šœœœ˜K˜Kšœœ˜—K˜Kšœœœ ˜šœ œœ˜K˜Kšœœ˜ —K˜Kšœœœ ˜šœ œœ˜K˜Kšœœ˜Kšœœ˜Kšœœ˜—K˜Kšœ œœ ˜šœ œœ˜K˜Kšœ&œ˜*Kšœœ˜#Kšœœœ˜ Kšœœœ˜'Kšœvœœ˜ƒKšœzœ˜~Kš œ œ œœœœ˜3Kš œ œ œœœ˜6Kšœœ˜Kšœ œ˜Kšœœ˜Kšœœ˜—K˜Kšœ œR˜`K˜Kšœ œœ˜'Kšœœœ)˜FK˜Kšœœœ˜)Kšœœœœ˜>K˜Kšœ œœ˜%šœœœ˜K˜Kšœœ˜ —K˜Kšœ œœœ ˜$K˜Kšœ œœ ˜šœ œœ˜K˜Kšœœ˜ Kšœœœ˜Kšœœ˜Kš œ œœ  œœ˜9—K˜Kšœœœ ˜Kšœ œœœ˜7K˜Kšœœœ˜Kšœœœœ˜3K˜Kšœ œœ˜%šœœœ˜Kšœ˜Kšœ œ˜Kšœ œœ˜—K˜Kšœœœ˜/šœœœ˜#K˜Kšœ œœ -œ˜@—K˜—K˜šŸ™K˜Kšœœœ˜K˜—K˜šŸ™K˜š Οnœœœ œœ œ˜OKšœ˜Kš )˜)—K˜Kšœœœ˜)K˜Kš‘œœ œœ œ œœ œœœœœ˜vK˜Kšœ œœ˜K˜K™K˜—Kšœ˜—…—ώ¦