home *** CD-ROM | disk | FTP | other *** search
- (**************************************************************************
-
- $RCSfile: Translator.mod $
- Description: Interface to translator.library
-
- Created by: fjc (Frank Copeland)
- $Revision: 3.2 $
- $Author: fjc $
- $Date: 1994/08/08 00:49:16 $
-
- Includes Release 40.15
-
- (C) Copyright 1985-1993 Commodore-Amiga, Inc.
- All Rights Reserved
-
- Oberon-A interface Copyright © 1994, Frank Copeland.
- This file is part of the Oberon-A Interface.
- See Oberon-A.doc for conditions of use and distribution.
-
- ***************************************************************************)
-
- MODULE Translator;
-
- (*
- ** $C- CaseChk $I- IndexChk $L+ LongAdr $N- NilChk
- ** $P- PortableCode $R- RangeChk $S- StackChk $T- TypeChk
- ** $V- OvflChk $Z- ZeroVars
- *)
-
- IMPORT Exec, SYS := SYSTEM;
-
-
- (*
- ** $VER: translator.h 36.1 (13.12.90)
- **
- ** Useful definitions for translator.library
- *)
-
- CONST
-
- (* Translator error return codes *)
-
- notUsed * = -1; (* This is an oft used system rc *)
- noMem * = -2; (* Can't allocate memory *)
- makeBad * = -4; (* Error in MakeLibrary call *)
-
-
- (*-- Library Base variable --------------------------------------------*)
-
- TYPE
-
- TranslatorBasePtr = CPOINTER TO TranslatorBase;
- TranslatorBase = RECORD (Exec.Library) END;
-
- CONST
-
- name * = "translator.library";
-
- VAR
-
- base* : TranslatorBasePtr;
-
-
- (*-- Library Functions ------------------------------------------------*)
-
- (*
- ** $VER: translator_protos.h 36.1 (7.11.90)
- *)
-
-
- LIBCALL (base : TranslatorBasePtr) Translate *
- ( inputString [8] : ARRAY OF CHAR;
- inputLength [0] : LONGINT;
- VAR outputBuffer [9] : ARRAY OF CHAR;
- bufferSize [1] : LONGINT )
- : LONGINT;
- -30;
-
-
- (*-- Library Base variable --------------------------------------------*)
- (* $L- Address globals through A4 *)
-
-
- (*-----------------------------------*)
- PROCEDURE* CloseLib ();
-
- BEGIN (* CloseLib *)
- IF base # NIL THEN Exec.base.CloseLibrary (base) END;
- END CloseLib;
-
- (*-----------------------------------*)
- PROCEDURE OpenLib * (mustOpen : BOOLEAN);
-
- BEGIN (* OpenLib *)
- IF base = NIL THEN
- base :=
- SYS.VAL
- ( TranslatorBasePtr,
- Exec.base.OpenLibrary (name, Exec.libraryMinimum) );
- IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
- ELSIF mustOpen THEN HALT (100)
- END;
- END;
- END OpenLib;
-
-
- BEGIN
- base := NIL
- END Translator.
-