.NONUMBER .TITLE FLEX - FLECS FORTRAN PREPROCESSOR .PAGE .INDENT 50 FLEX .SKIP 1 .CENTER FLEX - FLECS FORTRAN PREPROCESSOR .LEFT MARGIN 10 .SKIP 1 .INDENT -10 ^^ROUTINE NAME: FLEX\\ .SKIP 1 .INDENT -10 .INDENT -10 ^^PURPOSE:\\ ^THE ^^FLECS\\ TRANSLATOR (^^FORTRAN\\ ^LANGUAGE ^EXTENDED ^CONTROL ^STRUCTURE) PROVIDES EXTENSIONS TO THE ^^FORTRAN\\ LANGUAGE AND A PREPROCESSOR THAT IS TRANSPORTABLE FOR IMPLEMENTING THE EXTENSIONS. ^^FLECS\\ CONTAINS NINE CONTROL STRUCTURES NOT FOUND IN STANDARD ^^FORTRAN\\. ^IN ALL OTHER WAYS ^^FLECS\\ IS IDENTICAL TO ^^FORTRAN\\, AND IMBEDDED ^^FORTRAN\\ CODE IS PASSED THROUGH THE PREPROCESSOR UNCHANGED. ^THE ^^FLECS\\ PREPROCESSOR TRANSLATES ^^FLECS\\ CONTROL STRUCTURES INTO EQUIVALENT ^^FORTRAN\\ AND PRODUCES A NICELY FORMATTED AND INDENTED LISTING WHICH DISPLAYS THE LOGICAL STRUCTURE OF THE PROGRAM. ^THE RESULT OF PREPROCESSING IS A LISTING AND A ^^FORTRAN\\ FILE READY FOR COMPILATION WITH A STANDARD COMPILER. .SKIP 1 .INDENT -10 ^^CALLABLE:\\ ^^FLEX\\ IS ^^MCR\\ CALLABLE WHEN INSTALLED AND ACCEPTS ^^MCR\\ COMMAND LINES. .SKIP 1 .INDENT -10 ^^PARAMETERS:\\ ^THE ^^MCR\\ COMMAND LINE INPUTS ARE: .BREAK ^^FORTRAN OUTPUT, FLECS FORMAT LISTING=FLECS FORMAT INPUT\\ .BREAK ^THE DEFAULT EXTENSIONS ARE: .BREAK ^^.FTN, .FLL= .FLX\\ .BREAK ^THE LISTING FILE IS SPOOLED AUTOMATICALLY. .SKIP 1 .INDENT -10 ^^ROUTINES USED:\\ ^FOR BOTH ^^FOR\\ AND ^^F4P\\ THE LATEST VERSIONS WILL COMPILE THE "^C" FORM OF THE COMPILER. ^THE ASSOCIATED ROUTINES, ^^FSUB & RSX\\, ARE COMPILED AND ASSEMBLED, RESPECTIVELY, FOR INCLUSION IN THE TASK BUILD. .SKIP 1 .INDENT -10 ^^EXAMPLE:\\ ^TO COMPILE A ^^FLECS\\ PROGRAM, THE FOLLOWING SEQUENCE IS USED: .BREAK >^^FLEX PROG,PROG=PROG .BREAK >FOR PROG,PROG/LI:0/SP=PROG\\ OR .BREAK >^^F4P PROG,PROG/LI:0/SP=PROG\\ .BREAK ^IT IS SELDOM NECESSARY TO USE THE ^^FORTRAN\\ LISTING IN PRACTICE EXCEPT FOR ERRORS CAUGHT IN COMPILATION FOR WHICH LINE NUMBER MESSAGES HAVE NOT BEEN REQUESTED. .SKIP 1 .INDENT -10 ^^FEATURES:\\ ^THE NINE CONTROL STRUCTURES ADDED TO ^^FORTRAN\\ ARE: ^^IF, UNLESS, WHEN...ELSE, CONDITIONAL, SELECT, DO, WHILE, UNTIL, \\ AND ^^REPEAT\\. ^THE USE OF THESE STRUCTURES PERMITS THE ELIMINATION OF A DEPENDENCE ON STATEMENT NUMBERS FOR CONTROL TRANSFER. ^AS FAR AS THE USER IS CONCERNED, THE CODE MAY BE WRITTEN USING THE BEST OF STRUCTURED PROGRAMMING CONSTRAINTS AND MAY BE IN-LINE. ^FOR REPEATED FUNCTIONS OR FOR THE IMPLEMENTATION OF TOP-DOWN DESIGN TECHNIQUES, INTERNAL PROCEDURES MAY BE DEFINED AND REFERENCED WITH MEANINGFUL NAMES. ^THIS FACILITATES THE LAYOUT OF A DESIGN AND THE INCLUSING OF STUBS FOR SECTIONS NOT YET INCLUDED. .SKIP 1 .INDENT -10 ^^AUTHOR:\\ ^^FLECS\\ WAS WRITTEN BY ^TERRY ^BEYER OF THE ^UNIVERSITY OF ^OREGON ^COMPUTING ^CENTER. ^THE ASSEMBLY LANGUAGE SUPPORT ROUTINES FOR ^^RSX11\\ WERE WRITTEN BY ^CHRIS ^MEYERS OF THE ^EUGENE ^REGISTER ^GUARD IN ^EUGENE, ^OREGON. ^THE ROUTINES WERE MODIFIED BY ^GEORGE ^HAMMA OF THE ^LOCKHEED ^PALO ^ALTO ^RESEARCH ^LAB TO MATCH BOTH ^^FOR\\ AND ^^F4P\\ LINE-NUMBERING SEQUENCES. ^THERE ARE TWO VERSIONS OF THE CODE, WITH CONDITIONAL ASSEMBLY USED TO PICK THE DESIRED LINE-NUMBERING SEQUENCE. .SKIP 1 .INDENT -10 ^^WRITTEN:\\ ^^FLECS\\ VERSION 22 WAS WRITTEN ON 10-^^SEP\\-74. .SKIP 1 .INDENT -10 ^^SOURCE LANGUAGE:\\ ^^FLECS\\ IS WRITTEN IN ^^FLECS\\, BUT THE PROCESSED VERSION OF THE CODE IS INCLUDED FOR THE INSTALLATION OF THE PREPROCESSOR USING ^^FORTRAN\\. .SKIP 1 .INDENT -10 ^^OBJECT MODULE NAME:\\ ^^FLEX.OBJ, FSUB.OBJ, RSX.OBJ. .SKIP 1 .INDENT -10 ^^LAST MODIFICATION:\\ ^THE MOST RECENT MODIFICATION TO THIS RELEASE WAS TO VERSION 22.37 DATED 7-^^MAR\\-77 BY ^GEORGE ^HAMMA. .SKIP 1 .INDENT -10 ^^MAINTENANCE:\\ ^THE ^^FLECS\\ COMPILER IS MAINTAINED BY THE STAFF OF THE ^COMPUTING ^CENTER, ^UNIVERSITY OF ^OREGON, ^EUGENE, ^OREGON, 97403. ^THEIR PHONE NUMBER IS (503) 686-4416 AND THE DISTRIBUTION IS HANDLED BY ^ALICE ^CHAN. ^^FLECS\\ IS IN THE PUBLIC DOMAIN. .SKIP 1 .INDENT -10