
   [+/-] CHANNEL
   [-] FUNC
   [+] INT
   [+] STRING
   [+] TABLE
   [+] VECTOR
   [+/-] WORD

File APPLY.RFI:

   [-] $func? APPLY s.Name e.Exp = e.Exp;

File ARITHM.RFI:

   [+] $func "+"     s.Int1 s.Int2 = s.Int;
   [+] $func "-"     s.Int1 s.Int2 = s.Int;
   [+] $func "*"     s.Int1 s.Int2 = s.Int;
   [+] $func DIV-REM s.Int1 s.Int2 = s.Quo s.Rem;
   [+] $func DIV     s.Int1 s.Int2 = s.Quo;
   [+] $func REM     s.Int1 s.Int2 = s.Rem;
   [+] $func GCD     s.Int1 s.Int2 = s.Gcd;

File ACCESS.RFI:

   [+] $func  LENGTH  e.Exp = s.ExpLen;
   [+] $func? LEFT    s.Left  s.Len e.Exp = e.SubExp;
   [+] $func? RIGHT   s.Right s.Len e.Exp = e.SubExp;
   [+] $func? MIDDLE  s.Left  s.Right e.Exp = e.SubExp;
   [+] $func? L       s.Left  e.Exp = t.SubTerm;
   [+] $func? R       s.Right e.Exp = t.SubTerm;

File BOX.RFI:

   [+] $func BOX   e.Exp       = s.Box;
   [+] $func ?     s.Box       = e.Exp;
   [+] $func STORE s.Box e.Exp = ;

File CLASS.RFI:

   [+] $func? BOX?     e.Exp = ;
   [+] $func? CHANNEL? e.Exp = ;
   [+] $func? CHAR?    e.Exp = ;
   [+] $func? DIGIT?   e.Exp = ;
   [-] $func? FUNC?    e.Exp = ;
   [+] $func? INT?     e.Exp = ;
   [+] $func? LETTER?  e.Exp = ;
   [+] $func? STRING?  e.Exp = ;
   [+] $func? TABLE?   e.Exp = ;
   [+] $func? VECTOR?  e.Exp = ;
   [+] $func? WORD?    e.Exp = ;

File COMPARE.RFI:

   [+] $func? ">=" (e.Exp1)(e.Exp2) = ;
   [+] $func? ">"  (e.Exp1)(e.Exp2) = ;
   [+] $func? "<=" (e.Exp1)(e.Exp2) = ;
   [+] $func? "<"  (e.Exp1)(e.Exp2) = ;
   [+] $func? "/=" (e.Exp1)(e.Exp2) = ;
   [+] $func? "="  (e.Exp1)(e.Exp2) = ;
   [+] $func COMPARE (e.Exp1)(e.Exp2)  = s.Res;   * '<', '>', '='

File CONVERT.RFI:

   [+] $func CHARS-TO-BYTES e.Int  = e.Char;
   [+] $func BYTES-TO-CHARS e.Char = e.Int;
   [+] $func TO-LOWER       e.Char = e.Char;
   [+] $func TO-UPPER       e.Char = e.Char;
   [+] $func? TO-INT    e.Exp  = s.Int;
   [+] $func  TO-CHARS  e.Exp  = e.Char;
   [+] $func  TO-WORD   e.Exp  = s.Word;

File DOS.RFI:

   [-] $func ARG     s.Int = e.Arg;
   [-] $func GETENV  e.VarName = e.Value;
   [+] $func TIME    = e.String;
   [+] $func EXIT    s.ReturnCode = ;
   [-] $func DELAY s.Interv = ;
   [-] $func SLEEP s.Interv = ;
   [-] $func RANDOM s.Limit = s.Rand;  /* 0 <= s.Rand < s.Limit */
   [-] $func RANDOMIZE = ;

File STDIO.RFI:

   [+] $func  CHANNEL        = s.Channel;
   [+] $func? OPEN-FILE      s.Channel e.FileName s.Mode = ;
   [+] $func  CLOSE-CHANNEL  s.Channel = ;
   [-] $func PARSE-FILE-NAME e.FileName = s.DriveWord s.PathWord s.NameWord s.ExtWord;
   [-] $func? ERASE-FILE     e.FileName = ;
   [-] $func? EOF?        s.Channel = ;
   [-] $func? READ        = t.Term;
   [-] $func? READ-CHAR   = s.Char;
   [-] $func? READ-LINE   = e.Char;
   [+/-] $func  WRITE       e.Expr = ;
   [+/-] $func  WRITELN     e.Expr = ;
   [+/-] $func  PRINT       e.Expr = ;
   [+/-] $func  PRINTLN     e.Expr = ;
   [-] $func? READ!       s.Channel = t.Term;
   [-] $func? READ-CHAR!  s.Channel = s.Char;
   [-] $func? READ-LINE!  s.Channel = e.Char;
   [-] $func  WRITE!      s.Channel e.Expr = ;
   [-] $func  WRITELN!    s.Channel e.Expr = ;
   [-] $func  PRINT!      s.Channel e.Expr = ;
   [-] $func  PRINTLN!    s.Channel e.Expr = ;

File STRING.RFI:

   [+] $func  STRING         e.Source = s.String;
   [+] $func  STRING-INIT    s.String s.Len s.Fill = ;
   [+] $func  STRING-FILL    s.String s.Fill = ;
   [+] $func  STRING-LENGTH  s.String = s.Len;
   [+] $func  STRING-REF     s.String s.Index = s.Char;
   [+] $func  STRING-SET     s.String s.Index s.Char = ;
   [+] $func  STRING-REPLACE s.String e.Source = ;
   [+] $func  SUBSTRING      s.String s.Index s.Len = s.NewString;
   [+] $func  SUBSTRING-FILL s.String s.Index s.Len s.Fill = ;

File TABLE.RFI:

   [+] $func  TABLE      = s.Tab;
   [+] $func  BIND       s.Tab (e.Key) (e.Val) = ;
   [+] $func  UNBIND     s.Tab e.Key = ;
   [+] $func  TABLE-COPY s.Tab = s.TabCopy ;
   [+] $func  REPLACE-TABLE s.TargetTab s.SourceTab = ;
   [+] $func? LOOKUP     s.Tab e.Key = e.Val;
   [+] $func? IN-TABLE?  s.Tab e.Key = ;
   [+] $func? DOMAIN     s.Tab = e.KeyList ;

File VECTOR.RFI:

   [+] $func  VECTOR         e.Source = s.Vector;
   [+] $func  VECTOR-TO-EXP  s.Vector = e.Exp;
   [+] $func  VECTOR-INIT    s.Vector s.Len e.Fill = ;
   [+] $func  VECTOR-FILL    s.Vector e.Fill = ;
   [+] $func  VECTOR-LENGTH  s.Vector = s.Len;
   [+] $func  VECTOR-REF     s.Vector s.Index = e.Exp;
   [+] $func  VECTOR-SET     s.Vector s.Index e.Exp = ;
   [+] $func  VECTOR-REPLACE s.Vector e.Source = ;
   [+] $func  SUBVECTOR      s.Vector s.Index s.Len = s.NewVector;
   [+] $func  SUBVECTOR-FILL s.Vector s.Index s.Len e.Fill = ;

////////////////////////////////////////////////////////////////////////////////////

File BIT.RFI:

   [-] $func BIT-OR     s.Int1 s.Int2 = s.Int;
   [-] $func BIT-AND    s.Int1 s.Int2 = s.Int;
   [-] $func BIT-XOR    s.Int1 s.Int2 = s.Int;
   [-] $func BIT-NOT    s.Int         = s.Int;
   [-] $func BIT-LEFT   s.Int s.Shift = s.Int;
   [-] $func BIT-RIGHT  s.Int s.Shift = s.Int;
   [-] $func? BIT-TEST s.Int s.Pos = ;
   [-] $func BIT-SET   s.Int s.Pos = s.Int;
   [-] $func BIT-CLEAR s.Int s.Pos = s.Int;
   [-] $func BIT-PRINT s.Int = ;
   [-] $func BIT-LENGTH s.Int = s.Len;

File CONIO.RFI:

   [-] $func? KEY-PRESSED? = ;
   [-] $func READ-KEY = s.Char;
   [-] $func GET-SCR-CHAR-ATTR  s.Row s.Col = s.Ch s.Attr;
   [-] $func PUT-SCR-CHAR  s.Row s.Col s.Ch = ;
   [-] $func PUT-SCR-ATTR  s.Row s.Col s.Attr = ;
   [-] $func GET-FIELD-STR  s.Row s.Col s.Length = s.Chars;
   [-] $func PUT-FIELD-STR  s.Row s.Col s.Length s.Chars = ;
   [-] $func PUT-FIELD-ATTR  s.Row s.Col s.Length s.Attr = ;
   [-] $func GET-CURSOR  = s.Row s.Col;
   [-] $func SET-CURSOR  s.Row s.Col = ;
   [-] $func GET-CURSOR-FORM  = s.StartLine s.EndLine;
   [-] $func SET-CURSOR-FORM  s.StartLine s.EndLine = ;
   [-] $func GET-ATTRIBUTE  = s.Attr;
   [-] $func SET-ATTRIBUTE  s.Attr = ;
   [-] $func GET-TEXT-MODE  = s.Rows s.Cols;
   [-] $func CLEAR-SCREEN  = ;
   [-] $func  CWRITE       e.Expr = ;
   [-] $func  CWRITELN     e.Expr = ;
   [-] $func  CPRINT       e.Expr = ;
   [-] $func  CPRINTLN     e.Expr = ;

File HOLE.RFI:

   [-] $func SETHOLE s.LHOLE s.RHOLE  s.STARTHOLE = ;
   [-] $func GETHOLE = s.LHOLE s.RHOLE s.STARTHOLE;
   [-] /*$func GARB = ;*/

File RF5LIB.RFI:

   [-] $func "rf5CARD"    e.Prompt = e.Line;
   [-] $func "rf5CLOSE"   s.Fnum = ;
   [-] $func "rf5GET"     s.Fnum = e.Line;
   [-] $func "rf5OPEN"    s.Mode s.Fnum e.Fname = ;
   [-] $func "rf5PRINT"   e.Line = e.Line;
   [-] $func "rf5PUT"     s.Fnum e.Line = e.Line;
   [-] $func "rf5PUTOUT"  s.Fnum e.Line = ;
   [-] $func "rf5ADD"    (s)s = s;
   [-] $func "rf5DIV"    (s)s = s;
   [-] $func "rf5DIVMOD" (s)s = (s.Quot)s.Rem ;
   [-] $func "rf5MOD"    (s)s = s;
   [-] $func "rf5MUL"    (s)s = s;
   [-] $func "rf5SUB"    (s)s = s;
   [-] $func "rf5BR" e =;
   [-] $func "rf5CP" e.Key = e.Val;
   [-] $func "rf5DG" e.Key = e.Val;
   [-] $func "rf5DGALL" = e.Stack;
   [-] $func "rf5RP" e =;
   [-] $func "rf5FIRST" s.N e.Exp = (e.Prefix) e.Postfix;
   [-] $func "rf5LAST"  s.N e.Exp = (e.Prefix) e.Postfix;
   [-] $func "rf5LENW"  e.Exp = s.Len e.Exp;
   [-] $func "rf5TYPE"  e.Exp = s.Type e.Exp;
   [-] $func "rf5NUMB"  e = s;

File RF5_BRDG.RFI:

   [-] $func "rf5BR"    eKV = ;
   [-] $func "rf5DGALL" = ex ; 
   [-] $func "rf5CP"    eKey  = eVal ;
   [-] $func "rf5RP"    eKV   = ;
   [-] $func "rf5DG"    eKey  = eVal ;
   [-] $func "rf5NUMB"  eStr  = eNum ;

File RF5_SUPP.RFI:

   [-] $func "dgall" stab = etabrepr;
   [-] $func Bind-without-replace stab (ekey) (eval) = ;

