{
   Copyright (C) 1995 Free Software Foundation, Inc.
   Contributed by James Craig Burley.

This file is part of GNU Fortran.

GNU Fortran is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GNU Fortran is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Fortran; see the file COPYING.  If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.

}

FFESTR_first // // ffestrFirst ffestr_first 1 1
;Accept ACCEPT
;Allocatable ALLOCATABLE
;Allocate ALLOCATE
Assign ASSIGN
Backspace BACKSPACE
Block BLOCK
BlockData BLOCKDATA
Byte BYTE
Call CALL
Case CASE
CaseDefault CASEDEFAULT
Character CHRCTR
Close CLOSE
Common COMMON
Complex CMPLX
;Contains CONTAINS
Continue CONTINUE
Cycle CYCLE
Data DATA
;Deallocate DEALLOCATE
Decode DECODE
Define DEFINE
;DefineFile DEFINEFILE
Delete DELETE
Dimension DIMENSION
Do DO
Double DBL
DoubleComplex DBLCMPLX
DoublePrecision DBLPRCSN
DoWhile DOWHILE
Else ELSE
ElseIf ELSEIF
;ElseWhere ELSEWHERE
Encode ENCODE
End END
EndBlock ENDBLOCK
EndBlockData ENDBLOCKDATA
EndDo ENDDO
EndFile ENDFILE
EndFunction ENDFUNCTION
EndIf ENDIF
;EndInterface ENDINTERFACE
;EndMap ENDMAP
;EndModule ENDMODULE
EndProgram ENDPROGRAM
EndSelect ENDSELECT
;EndStructure ENDSTRUCTURE
EndSubroutine ENDSUBROUTINE
;EndType ENDTYPE
;EndUnion ENDUNION
;EndWhere ENDWHERE
Entry ENTRY
Equivalence EQUIVALENCE
Exit EXIT
External EXTERNAL
Find FIND
Format FORMAT
Function FUNCTION
Go GO
GoTo GOTO
If IF
Implicit IMPLICIT
Include INCLUDE
Inquire INQUIRE
Integer INTGR
;Intent INTENT
;Interface INTERFACE
;InterfaceAssignment INTERFACEASSGNMNT
;InterfaceOperator INTERFACEOPERATOR
Intrinsic INTRINSIC
Logical LGCL
;Map MAP
;Module MODULE
;ModuleProcedure MODULEPROCEDURE
NameList NAMELIST
;Nullify NULLIFY
Open OPEN
;Optional OPTIONAL
Parameter PARAMETER
Pause PAUSE
;Pointer POINTER
Print PRINT
;Private PRIVATE
Program PROGRAM
;Public PUBLIC
Read READ
Real REAL
;Record RECORD
;Recursive RECURSIVE
;RecursiveFunction RECURSIVEFNCTN
Return RETURN
Rewind REWIND
;Rewrite REWRITE
Save SAVE
Select SELECT
SelectCase SELECTCASE
;Sequence SEQUENCE
Stop STOP
;Structure STRUCTURE
Subroutine SUBROUTINE
;Target TARGET
Then THEN
Type TYPE
;Union UNION
;Unlock UNLOCK
;Use USE
Virtual VIRTUAL
Volatile VOLATILE
;Where WHERE
Word WORD
Write WRITE
