/************************************************************************ * ratini -initialize things for ratfor * * * * ratini does the following: * * 1. installs into the table the keywords and * * reserved words. * * note: * * 1. if ratini detects an error, it STOPs * ************************************************************************/ subroutine ratini include ratfor.def logical instal #returns true if install is successful character temp(2) data temp(2)/EOS/ label STOPLABEL temp(1) = LEXBREAK if(^instal("BREAK",temp))goto STOPLABEL temp(1) = LEXCASE if(^instal("CASE",temp))goto STOPLABEL temp(1) = LEXDEFINE if(^instal("DEFINE",temp))goto STOPLABEL temp(1) = LEXDO if(^instal("DO",temp))goto STOPLABEL temp(1) = LEXELSE if(^instal("ELSE",temp))goto STOPLABEL temp(1) = LEXEND_STAT if(^instal("END",temp))goto STOPLABEL temp(1) = LEXFOR if(^instal("FOR",temp))goto STOPLABEL temp(1) = LEXIF if(^instal("IF",temp))goto STOPLABEL temp(1) = LEXINCLUDE if(^instal("INCLUDE",temp))goto STOPLABEL temp(1) = LEXLABEL if(^instal("LABEL",temp))goto STOPLABEL temp(1) = LEXNEXT if(^instal("NEXT",temp))goto STOPLABEL temp(1) = LEXREPEAT if(^instal("REPEAT",temp))goto STOPLABEL temp(1) = LEXSTRING_STAT if(^instal("STRING",temp))goto STOPLABEL temp(1) = LEXSWITCH if(^instal("SWITCH",temp))goto STOPLABEL temp(1) = LEXUNDEFINE if(^instal("UNDEFINE",temp))goto STOPLABEL temp(1) = LEXUNTIL if(^instal("UNTIL",temp))goto STOPLABEL temp(1) = LEXWHILE if(^instal("WHILE",temp))goto STOPLABEL temp(1) = LEXGLOBAL_DEF if(^instal("GLOBAL_DEFINE",temp))goto STOPLABEL temp(1) = LEXGLOBAL_FILE if(^instal("GLOBAL_FILE",temp))goto STOPLABEL temp(1) = LEXSCOPE_BEGIN if(^instal("SCOPE_BEGIN",temp))goto STOPLABEL temp(1) = LEXSCOPE_END if(^instal("SCOPE_END",temp))goto STOPLABEL #these are FORTRAN words which are more than 6 characters long temp(1) = LEXSPECIAL if(^instal("ASSOCIATEVARIABLE",temp))goto STOPLABEL if(^instal("BACKSPACE",temp))goto STOPLABEL if(^instal("BLOCKDATA",temp))goto STOPLABEL if(^instal("BLOCKSIZE",temp))goto STOPLABEL if(^instal("BUFFERCOUNT",temp))goto STOPLABEL if(^instal("CARRIAGECONTROL",temp))goto STOPLABEL if(^instal("COMPLEX",temp))goto STOPLABEL if(^instal("CONTINUE",temp))goto STOPLABEL if(^instal("DEFINEFILE",temp))goto STOPLABEL if(^instal("DIMENSION",temp))goto STOPLABEL if(^instal("DISPOSE",temp))goto STOPLABEL if(^instal("DOUBLEPRECISION",temp))goto STOPLABEL if(^instal("ENDFILE",temp))goto STOPLABEL if(^instal("EQUIVALENCE",temp))goto STOPLABEL if(^instal("EXTENDSIZE",temp))goto STOPLABEL if(^instal("EXTERNAL",temp))goto STOPLABEL if(^instal("FUNCTION",temp))goto STOPLABEL if(^instal("IMPLICIT",temp))goto STOPLABEL if(^instal("INITIALSIZE",temp))goto STOPLABEL if(^instal("INTEGER",temp))goto STOPLABEL if(^instal("LOGICAL",temp))goto STOPLABEL if(^instal("NOSPANBLOCKS",temp))goto STOPLABEL if(^instal("PARAMETER",temp))goto STOPLABEL if(^instal("PRECISION",temp))goto STOPLABEL if(^instal("PROGRAM",temp))goto STOPLABEL if(^instal("READONLY",temp))goto STOPLABEL if(^instal("RECORDSIZE",temp))goto STOPLABEL if(^instal("SUBROUTINE",temp))goto STOPLABEL if(^instal("VIRTUAL",temp))goto STOPLABEL # install the value for default. This is done to ease # code generation for switch/case statements if(^instal("DEFAULT","-2147483648"))goto STOPLABEL return STOPLABEL { call synerr(F_ERR_RATINI) call ratout } end