<<>> <> <> <> <> <> <> <<>> DIRECTORY IO, EBTypes, RefTab, Rope; EBLanguage: CEDAR DEFINITIONS = BEGIN ButtonInfo: TYPE = EBTypes.ButtonInfo; Context: TYPE = EBTypes.Context; ROPE: TYPE = Rope.ROPE; EBLanguageProc: TYPE = EBTypes.EBLanguageProc; <> <> <<>> PoppyParse: PROC [stream: IO.STREAM] RETURNS [symbols: RefTab.Ref, order: LIST OF ATOM]; <> <) "Third Item" "Sends Event3 to application") ) MessageHandler: MessageWindow Feedback: ( (MouseMoved ) )>> PoppyParseFieldNames: PROC [stream: IO.STREAM] RETURNS [symbols: RefTab.Ref, order: LIST OF ATOM]; <> <<>> PoppyParseFieldValues: PROC [symbols: RefTab.Ref]; <> <<>> PoppyUnparse: PROC [symbols: RefTab.Ref, order: LIST OF ATOM] RETURNS [result: ROPE]; <> FieldParseProc: TYPE = PROC [stream: IO.STREAM] RETURNS [val: REF]; RegisterFieldParseProc: PROC [fieldName: ATOM, parseProc: FieldParseProc]; FieldUnparseProc: TYPE = PROC[val: REF] RETURNS [rope: ROPE]; RegisterFieldUnparseProc: PROC [fieldName: ATOM, unparseProc: FieldUnparseProc]; <<>> VariableType: TYPE = REF VariableTypeObj; VariableTypeObj: TYPE = RECORD [ class: {boolean, atom, rope, integer, real, enumerated}, enumeration: SEQUENCE count: NAT OF REF ANY ]; VariableTable: TYPE = RefTab.Ref; <<>> Variable: TYPE = REF VariableObj; VariableObj: TYPE = RECORD [ type: VariableType, value: REF ]; CreateVariableTable: PROC [] RETURNS [table: VariableTable]; GetVariable: PROC [table: VariableTable, name: ATOM] RETURNS [variable: Variable]; <> <<>> SetVariable: PROC [table: VariableTable, name: ATOM, variable: Variable]; <> <<>> DeleteVariable: PROC [table: VariableTable, name: ATOM] RETURNS [existed: BOOL ¬ FALSE]; <> <> <<>> GetFieldRope: PROC [symbols: RefTab.Ref, key: ATOM] RETURNS [rope: ROPE]; GetFieldAtom: PROC [symbols: RefTab.Ref, key: ATOM] RETURNS [atom: ATOM]; GetFieldRef: PROC [symbols: RefTab.Ref, key: ATOM] RETURNS [ref: REF]; SetFieldRope: PROC [symbols: RefTab.Ref, order: LIST OF ATOM, key: ATOM, rope: ROPE]; SetFieldAtom: PROC [symbols: RefTab.Ref, order: LIST OF ATOM, key: ATOM, atom: ATOM]; SetFieldRef: PROC [symbols: RefTab.Ref, order: LIST OF ATOM, key: ATOM, ref: REF]; Equal: PROC [o1, o2: REF ANY] RETURNS [result: BOOL ¬ FALSE]; <> <<>> EqualInt: PROC [o1: REF ANY, o2: INT] RETURNS[result: BOOL ¬ FALSE]; EqualBool: PROC [o1: REF ANY, o2: BOOL] RETURNS[result: BOOL ¬ FALSE]; RegisterProc: PROC [name: ATOM, proc: EBLanguageProc, interpreted: BOOL ¬ TRUE]; <> <<>> Evaluate: PROC [expression: REF, buttonInfo: ButtonInfo, clientData: REF ¬ NIL, context: Context ¬ NIL] RETURNS [REF ANY]; <> AddEntity: PROC [entity: REF ANY, entityList, ptr: LIST OF REF ANY] RETURNS [newList, newPtr: LIST OF REF ANY]; <> CreateContext: PROC [] RETURNS [context: Context]; GetSystemValue: PROC [context: Context, name: ATOM] RETURNS [value: REF]; SetSystemValue: PROC [context: Context, name: ATOM, value: REF]; END.