[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ilbbak::ibi_focus

Title:FOCUS, from INFORMATION BUILDERS
Moderator:ZAYIUS::BROUILLETTE
Created:Thu Feb 19 1987
Last Modified:Mon May 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:615
Total number of notes:1779

197.0. "LSE template" by TOLKIN::KIRK (Matt Kirk, 291-8891) Mon Apr 10 1989 14:24

    Anyone know of a Focus LSE template anywhere?  We're looking for
    one.
    
    Thanks
T.RTitleUserPersonal
Name
DateLines
197.1same questionEFGV04::HOOGVeni, vidi, victim......Tue Jul 11 1989 11:047
197.2Any developmentsEISYFI::ISLERMon Jun 03 1991 13:578
    Two years later, I have the same question.
    
    Is there an LSE template for FOCUS?
    
    Your inputs are greatly appreciated since a customer satisfaction might
    depend on this.
    
    Yasemin
197.3I think I can put something together...BTOVT::ISLACROIXThu Jul 25 1991 11:1011
    
    I had been searching for such a beast myself. Since you obviously have
    a need for one, I have decided to write one (I wrote a template for a
    IEEE device programming language a couple of years ago, so I know 
    roughly what's involved). I have only a few hours a week to spend on
    it, but I think I can have a basic reporting template by the end of 
    August or mid-September. Judging by the date of you're original note,
    I hope you won't mind waiting a bit longer :^}
    
    John LaCroix
    BTO IM&T
197.4LSE INTERESTMILPND::MADDENThu Jul 25 1991 18:331
    I'm looking forward to trying your LSE template.  Thank you.
197.5Still interested..................EFGV04::HOOGErrare systemus est..................Fri Jul 26 1991 07:2613
197.6We'll, it's done..(I think)BTOVT::ISLACROIXFri Aug 30 1991 12:3225
    Ok, here it is....
    
    After a month of keypounding, I have written an LSE template that
    covers the following (from release 5.2.2 documentation):
    
    	Chapter  2: table reporting
    	Chapter  6: Dialog Manager
        Chapter  7: FIDEL (CRTFORM only)
    	Chapter 12: user aides
        Chapter 16: FOCUS in a VMS environment (FILEDEF only)
    
    It doesn't have everything, but should be more than adequate for
    MATCHES, JOINS, and TABLES...
    
    The next reply contains the LSE file. One way to set it up to run is:
    
    		1. $ LSEDIT LSE$FOCUS_ENVIRONMENT.LSE
    		2. LSE>DO
    		3. LSE>SAVE ENVIRONMENT LSE$FOCUS_ENVIRONMENT
    		4. $ ASSIGN <path>LSE$FOCUS_ENVIRONMENT.ENV LSE$ENVIRONMENT
    
    Use it at you're own risk. As I can't support it, users are up to their
    own as far as enhancing, debugging, etc.
    
    John
197.7FOCUS LSE templateBTOVT::ISLACROIXFri Aug 30 1991 12:332864
! 
!     Facility:
!
!	  BTO 
!  
!     Abstract:
!
!	  This module contains the LSE template for the IBI FOCUS reporting
!	  environment. It was created using the VAX/VMS FOCUS Users Manual,
!	  Volume I and II (release 5.2), and the Subroutine Library Users
!	  Manual.
!
!     Scope:
!   
!	  This template covers chapter 2 (reporting), chapter 12 (user aides),
!	  chapter 6 (dialog manager), part of chapter 15 (FOCUS in a VMS
!	  environment), and all of the functions described in the Subroutine
!	  Library Users Manual.
!  
!     Author:
!
!	  John L. LaCroix, Jr.
!  
!     Creation Date:
!
!	  July 25, 1991   
!  
!     Modification History:
!
!	V1.0	30-Aug-1991     JLL     Added Dialog Manager commands from
!					chapter 6, and the FILEDEF command
!					from chapter 15.
!		29-Aug-1991     JLL     Coded arithmetic & alphanumeric 
!					operator menus, and coded the following
!					functions and commands: EDIT, DECODE,
!					LAST, ROW-TOTAL, COLUMN-TOTAL, HEADING,
!					FOOTING, MATCH, TABLEF, RETYPE, ONLINE
!					and OFFLINE commands. That does it for
!					chapter 2.
!		27-Aug-1991     JLL     Finished COMPUTE and DEFINE definitions
!					and coded TABLE request block.
!	        26-Aug-1991     JLL     Coded WITHIN clause for SUM verb
!				        requests, and started COMPUTE and
!					DEFINE definitions.
!	        23-Aug-1991     JLL     Coded IF clause for record selection.
!					Also added verb field prefix operators.
!		21-Aug-1991     JLL     Coded field format selections, completed
!				        work on table BY and ACROSS phrasing.
!	        20-Aug-1991     JLL     Coded PRINT, LIST, ADD, WRITE, SUM,
!					COUNT, SUM., CNT., SEG., and SEGMENT
!					verb and adverb tokens.
!	        19-Aug-1991     JLL     Finished ON TABLE verb clauses.
!		14-Aug-1991     JLL	Coded the ON verb clause, still have
!					to finish the ON TABLE clauses.
!		13-Aug-1991     JLL     Coded the CHECK and XFER commands.
!	        12-Aug-1991     JLL     Coded the LET and JOIN commands.
!	        09-Aug-1991     JLL     Coded the SET command.
!	      	07-Aug-1991	JLL	Finished adding all of the functions
!				        in the subroutine library reference.
!	  V0.0	23-Aug-1991	JLL	(Initial)
!

!
!   Language definition:
!  

define language FOCUS -
    /file_types = (.FEX) -
    /identifier_characters = -
    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890$_" -
    /punctuation_characters = ".(),'':*+-/" -
    /opt = ("[","]") -
    /optl = ("[","]...") -
    /req = ("{","}") -
    /reql = ("{","}...") -
    /initial_string = "[focexec template]..." -
    /tab_increment = 1 -
    /comment = (trailing = "-*") -
    /noquoted_item

!
!   Token definitions
!

!   A tokens

define token "ABS" -
    /language = FOCUS -
    /description = "Return the absolute value"
    "ABS ({argument})"
end define

define token "ACROSS" -
	/language = FOCUS -
	/description = "action verb for sorting report rows in TABLE requests"
        "{across_phrase}..."
end define

define token "ADD" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "ADD {field(s)}..."
end define

define token "ARGLEN" -
    /language = FOCUS -
    /description = "Measure character string length, excluding trailing blanks"
    "ARGLEN ({inlength}, {infield}, {outfield})"
end define

define token "ATODBL" -
    /language = FOCUS -
    /description = "Converts a number from alphanumeric to double precision"
    "ATODBL ({number}, {inlength}, {outfield})"
end define

define token "AYM" -
    /language = FOCUS -
    /description = "Adds and subtracts months from dates"
    "AYM ({year-month}, {months}, {outfield})"
end define

define token "AYMD" -
    /language = FOCUS -
    /description = "Adds and subtracts days from dates"
    "AYMD ({year-month-day}, {days}, {outfield})"
end define

!   B tokens

define token "BAR" -
    /language = FOCUS -
    /description = "Produce horizontal bar charts in table reports"
    "BAR ({barlength}, {infield}, {maxvalue}, {char}, {outfield})"
end define

define token "BITSON" -
    /language = FOCUS -
    /description = "Evaluates individual bits within character strings"
    "BITSON ({bitnumber}, {infield}, {outfield})"
end define

define token "BITVAL" -
    /language = FOCUS -
    /description = "Evaluates strings of bits within character strings"
    "BITVAL ({infield}, {startbit}, {number}, {outfield})"
end define

define token "BY" -
	/language = FOCUS -
	/description = "action verb for sorting report rows in TABLE requests"
        "{by_phrase}..."
end define

define token "BYTVAL" -
    /language = FOCUS -
    /description = "Translates characters into ASCII codes that represent them"
    "BYTVAL ({character}, {outfield})"
end define

!   C tokens

define token "CHECK" -
    /language = FOCUS -
    /description = "Validates FOCUS master file descriptions"
    "CHECK FILE {filename} [PICTURE] [HOLD] [RETRIEVE]"
end define

define token "CHGDAT" -
    /language = FOCUS -
    /description = "Rearrange the year, month and day portions of a date"
    "CHGDAT ({oldformat}, {newformat}, {indate}, {outfield})"
end define

define token "CHKFMT" -
    /language = FOCUS -
    /description = "Compare number of characters in a string to a mask"
    "CHKFMT ({numchar}, {infield}, '{mask}...', {outfield})"
end define

define token "CHKPCK" -
    /language = FOCUS -
    /description = "Validate packed fields"
    "CHKPCK ({inlength}, {infield}, {error}, {outfield})"
end define

define token "COLUMN-TOTAL" -
    /language = FOCUS -
    /description = "TABLE request keyword for producing a column total"
    "[AND] COLUMN-TOTAL"
end define

define token "COUNT" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "COUNT {field(s)}..."
end define

define token "CRTFORM" -
    /language = FOCUS -
    /description = "invoke FIDEL and create a visual form"
    "[-]CRTFORM [option]..."
    "[screen_element]..."
end define

define token "CTRAN" -
    /language = FOCUS -
    /description = "Convert a character in a string to another character"
    "CTRAN ({inlength}, {infield}, {incode}, {outcode}, {outfield})"
end define

define token "CTRFLD" -
    /language = FOCUS -
    /description = "Centers a character string within a field"
    "CTRFLD ({infield}, {inlength}, {outfield})" 
end define

define token "CVTSTIME" -
    /language = FOCUS -
    /description = "Converts a 64-bit date/time field into a character string"
    "CVTSTIME ({number}, {infield}, {outfield})"
end define

!   D tokens

define token "DADMY" -
    /language = FOCUS -
    /description = "Converts from day-month-year to days elapsed this century"
    "DADMY ({indate}, {outfield})"
end define

define token "DADYM" -
    /language = FOCUS -
    /description = "Converts from day-year-month to days elapsed this century"
    "DADYM ({indate}, {outfield})"
end define

define token "DAMDY" -
    /language = FOCUS -
    /description = "Converts from month-day-year to days elapsed this century"
    "DAMDY ({indate}, {outfield})"
end define

define token "DAMYD" -
    /language = FOCUS -
    /description = "Converts from month-year-day to days elapsed this century"
    "DAMYD ({indate}, {outfield})"
end define

define token "DAYDM" -
    /language = FOCUS -
    /description = "Converts from year-day-month to days elapsed this century"
    "DAYDM ({indate}, {outfield})"
end define

define token "DAYMD" -
    /language = FOCUS -
    /description = "Converts from year-month-day to days elapsed this century"
    "DAYMD ({indate}, {outfield})"
end define

define token "DECODE" -
    /language = FOCUS -
    /description = "Command for decoding database fields"
    "DECODE {source} ({select_expression} [ELSE default])"
end define

define token "DEFAULTS" -
    /language = FOCUS -
    /description = "Set initial values for variable substitution"
    "-DEFAULT {name_value}..."
end define

define token "DEFINE" -
    /language = FOCUS -
    /description = "DEFINE verb request block"
    "{define_block}..."
end define

define token "DMOD" -
    /language = FOCUS -
    /description = "Return division remainder as a double-precision number"
    "DMOD ({dividend}, {divisor}, {outfield})"
end define

define token "DOWK" -
    /language = FOCUS -
    /description = "Finds the day of week (SUN thru SAT) of dates"      
    "DOWK ({indate}, {outfield})"
end define

define token "DOWKL" -
    /language = FOCUS -
    /description = "Finds the day of week (SUNDAY thru SATURDAY) of dates"      
    "DOWKL ({indate}, {outfield})"
end define

define token "DTDMY" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to day-month-year format"
    "DTDMY ({number}, {outfield})"
end define

define token "DTDYM" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to day-year-month format"
    "DTDYM ({number}, {outfield})"
end define

define token "DTMDY" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to month-day-year format"
    "DTMDY ({number}, {outfield})"
end define

define token "DTMYD" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to month-year-day format"
    "DTMYD ({number}, {outfield})"
end define

define token "DTYDM" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to year-day-month format"
    "DTYDM ({number}, {outfield})"
end define

define token "DTYMD" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to year-month-day format"
    "DTYMD ({number}, {outfield})"
end define

!   E tokens

define token "EDIT" -
    /language = FOCUS -
    /description = "Function used to edit database fields"
    "EDIT({fieldname}[, 'mask'])"
end define

define token "EXIT" -
    /language = FOCUS -
    /description = "execute stacked FOCUS commands and exit"
    "-EXIT"
end define

define token "EXP" -
    /language = FOCUS -
    /description = "Raises 'e' (approximately 2.72) to a specified power"
    "EXP ({power}, {outfield})"
end define

!   F tokens

define token "FILEDEF" -
    /language = FOCUS -
    /description = "Define an external file for read(s) and/or write(s)"
    "FILEDEF {ddname} {device} {filename} [APPEND] [LOWER] [LRECL n] [RECFM F]"
end define

define token "FMOD" -
    /language = FOCUS -
    /description = "Return division remainder as a floating-point number"  
    "FMOD ({dividend}, {divisor}, {outfield})" 
end define

define token "FOOTING" -
    /language = FOCUS -
    /description = "adds a footing to each page of a TABLE report request"
    "FOOTING [CENTER] [BOTTOM]"
    "{text}"
end define

define token "FTOA" -
    /language = FOCUS -
    /description = "Convert numbers from numeric to alphanumeric format"  
    "FTOA ({number}, '({format})', {outfield})" 
end define

!   G tokens

define token "GETTOK" -
    /language = FOCUS -
    /description = "Return a substring from a character string"
    "GETTOK ({infield}, {inlen}, {toknum}, {delimiter}, {outlen}, {outfield})"
end define

define token "GETUSER" -
    /language = FOCUS -
    /description = "Retrieves the user ID (interactive) or jobname (batch)"
    "GETUSER ({outfield})"
end define

define token "GETSTIME" -
    /language = FOCUS -
    /description = "Puts the system's date and time into an 8-character string"
    "GETSTIME ({outfield})"
end define

define token "GOTO" -
    /language = FOCUS -
    /description = "Branch to user specified label"
    "-GOTO {label}" 
end define

define token "GREGDT" -
    /language = FOCUS -
    /description = "Converts year-day format (Julian) to year-month-day format"
    "GREGDT ({indate}, {outfield})" 
end define

!   H tokens

define token "HEADING" -
    /language = FOCUS -
    /description = "Creates a heading for TABLE report requests"
    "HEADING [CENTER]"
    "{text}"
end define

define token "HEXBYT" -
    /language = FOCUS -
    /description = "Translates integers between 0 and 255 to ASCII characters"
    "HEXBYT ({number}, {outfield})"
end define

define token "HHMMSS" -
    /language = FOCUS -
    /description = "Retrieve the current time from the system"
    "HHMMSS ({outfield})"
end define

!   I tokens

define token "IF" -
    /language = FOCUS -
    /description = "Record selection syntax"
    "{if_statement}..."
end define

define token "-IF" -
    /language = FOCUS -
    /description = "Record selection syntax (Dialog Manager)"
    "-IF {expression} [THEN] GOTO {label} [ELSE GOTO label];"
end define

define token "IMOD" -
    /language = FOCUS -
    /description = "Return division remainder as an integer"
    "IMOD ({dividend}, {divisor}, {outfield})" 
end define

define token "INCLUDE" -
    /language = FOCUS -
    /description = "Inline inclusion of another FOCEXEC"
    "-INCLUDE {filename}" 
end define

define token "INT" -
    /language = FOCUS -
    /description = "Return the integer part"
    "INT ({argument})"
end define

define token "ILOCAS" -
    /language = FOCUS -
    /description = "Replace lower case characters to specified equivalents"
    "ILOCAS ({cstring}, {inlength}, {infield}, {outfield})" 
end define

define token "ITOZ" -
    /language = FOCUS -
    /description = "Converts numbers in numeric format to zoned format"
    "ITOZ ({outlength}, {number}, {outfield})" 
end define

define token "IUPCAS" -
    /language = FOCUS -
    /description = "Replace upper case characters to specified equivalents"
    "IUPCAS ({cstring}, {inlength}, {infield}, {outfield})" 
end define

!   J tokens

define token "JOIN" -
    /language = FOCUS -
    /description = "Singe request reporting from multiple related databases"
    "JOIN {structure_or_clear}"
end define

define token "JULDAT" -
    /language = FOCUS -
    /description = "Converts year-month-date format to year-day (Julian) format"
    "JULDAT ({indate}, {outfield})" 
end define

!   K tokens

!   L tokens

define token "LAST" -
    /language = FOCUS -
    /description = "Obtains the preceding value for a field"
    "LAST {fieldname}" 
end define

define token "LET" -
    /language = FOCUS -
    /description = "Define words to represent other words and phrases"
    "{let_statement_or_block}" 
end define

define token "LIST" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "LIST {field(s)}..."
end define

define token "LJUST" -
    /language = FOCUS -
    /description = "Left-justifies a character string within a field"
    "LJUST ({inlength}, {infield}, {outfield})" 
end define

define token "LOCASE" -
    /language = FOCUS -
    /description = "Convert alphanumeric field values to lower case"
    "LOCASE ({inlength}, {infield}, {outfield})"
end define

define token "LOG" -
    /language = FOCUS -
    /description = "Return the base e logarithm"
    "LOG ({argument})"
end define

!   M tokens

define token "MATCH" -
    /language = FOCUS -
    /description = "MATCH request command"
    "{match_block}..."
end define

define token "MAX" -
    /language = FOCUS -
    /description = "Return the maximum value"
    "MAX ({argument}...)"
end define

define token "MIN" -
    /language = FOCUS -
    /description = "Return the minimum value"
    "MIN ({argument}...)"
end define

define token "MXCASE" -
    /language = FOCUS -
    /description = "First alpha character in fields converted to uppercase"
    "MXCASE ({inlength}, {infield}, {outfield})"
end define

!   N tokens

!   O tokens

define token "ON" -
    /language = FOCUS -
    /description = "Action verb for TABLE and MATCH requests"
    "ON {on_phrase}"
end define

define token "ONLINE" -
    /language = FOCUS -
    /description = "set report destination to the terminal"
    "ONLINE"
end define

define token "OFFLINE" -
    /language = FOCUS -
    /description = "set report destination to a defined non-terminal device"
    "OFFLINE"
end define

define token "OVRLAY" -
    /language = FOCUS -
    /description = "Overlay a substring on another character string"
    "OVRLAY ({base}, {baselen}, {substring}, {sublen}, {position}, {outfield})"
end define

!   P tokens

define token "PARAG" -
    /language = FOCUS -
    /description = "Partition lines of text into smaller lines"
    "PARAG ({inlength}, {infield}, {delimiter}, {subsize}, {outfield})"
end define

define token "PCKOUT" -
    /language = FOCUS -
    /description = "Vary packed numbers of different lengths to extract files"
    "PCKOUT ({infield}, {outlength}, {outfield})"
end define

define token "PRINT" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "PRINT {field(s)}..."
end define

define token "PROMPT" -
    /language = FOCUS -
    /description = "solicit values to assign to variables"
    "-PROMPT {variable}"
end define

define token "POSIT" -
    /language = FOCUS -
    /description = "Get substring starting positions within larger strings"
    "POSIT ({parent}, {inlength}, {substring}, {sublength}, {outfield})"
end define

define token "PRDNOR" -
    /language = FOCUS -
    /description = "Create random numbers dist. normally with 0 mean & s.d. 1" 
    "PRDNOR ({seed}, {outfield})"
end define

define token "PRDUNI" -
    /language = FOCUS -
    /description = "Create reproducible sets of uniformly dist. random numbers"
    "PRDUNI ({seed}, {outfield})"
end define

!   Q tokens

define token "QUIT" -
    /language = FOCUS -
    /description = "cancel execution and exit immediately"
    "-QUIT [FOCUS n]" 
end define

!   R tokens

define token "READ" -
    /language = FOCUS -
    /description = "Read values from a sequential file"
    "-READ {filename}[,] {variable,}..." 
end define

define token "RETYPE" -
    /language = FOCUS -
    /description = "Redisplay report"
    "RETYPE" 
end define

define token "RDNORM" -
    /language = FOCUS -
    /description = "Create random numbers, dist. normally with 0 mean & s.d. 1"
    "RDNORM ({outfield})" 
end define

define token "RDUNIF" -
    /language = FOCUS -
    /description = "Create uniformly distributed random numbers between 0 and 1"
    "RDUNIF ({outfield})" 
end define

define token "RJUST" -
    /language = FOCUS -
    /description = "Right-justifies a character string within a field"
    "RJUST ({inlength}, {infield}, {outfield})" 
end define

define token "ROW-TOTAL" -
    /language = FOCUS -
    /description = "TABLE request keyword for producing a row total"
    "[AND] ROW-TOTAL"
end define

define token "RUN" -
    /language = FOCUS -
    /description = "execute all FOCUS commands in FOCSTACK (Dialog Manager)"
    "-RUN"
end define

!   S tokens

define token "SEGMENT" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "SEGMENT {fieldname}"
end define

define token "SET" -
    /language = FOCUS -
    /description = "Change FOCUS environment parameters"
    "SET {parameter}..."
end define

define token "-SET" -
    /language = FOCUS -
    /description = "Assign values to computed logical or arithmetic expressions"
    "-SET [&]&{name}={expression};"
end define

define token "SOUNDEX" -
    /language = FOCUS -
    /description = "Phonetical search for character strings"
    "SOUNDEX ({inlength}, {string}, {outfield})" 
end define

define token "SUBSTR" -
    /language = FOCUS -
    /description = "Extract substrings, using offsets within a parent string"
    "SUBSTR ({inlength}, {parent}, {start}, {end}, {sublength}, {outfield})"
end define

define token "SUM" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "SUM {field(s)}... [WITHIN]..."
end define

define token "SQRT" -
    /language = FOCUS -
    /description = "Return the square root"
    "SQRT ({argument})"
end define

!   T tokens

define token "TABLE" -
    /language = FOCUS -
    /description = "Report request command"
    "{table_block}..."
end define

define token "TABLEF" -
    /language = FOCUS -
    /description = "Fast report request, without sorting"
    "{tablef_block}..."
end define

define token "TODAY" -
    /language = FOCUS -
    /description = "Retrieve the current date from the system"
    "TODAY ({outfield})"
end define

define token "TYPE" -
    /language = FOCUS -
    /description = "Retrieve the current date from the system"
    "-TYPE[var] {text}"
end define

!   U tokens

define token "UPCASE" -
    /language = FOCUS -
    /description = "Convert alphanumeric field values to upper case"
    "UPCASE ({inlength}, {infield}, {outfield})"
end define

!   V tokens

define token "variable" -
    /language = FOCUS -
    /description = "User defined local or global variable"
    "[&]&{name}[.format.][.(list).][text.]"
end define

define token "VMS" -
    /language = FOCUS -
    /description = "Execute operating system command"
    "-VMS {text}"
end define

!   W tokens

define token "WITHIN" -
    /language = FOCUS -
    /description = "qualifies domain of data fields with BY or ACROSS phrases"
    "WITHIN {domain}"
end define

define token "WRITE" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "WRITE {field(s)}..."
end define

define token "-WRITE" -
    /language = FOCUS -
    /description = "Write to an external file"
    "-WRITE {filename} {text}"
end define

!   X tokens

define token "XFER" -
    /language = FOCUS -
    /description = "Download or upload files between a VAX and a microcomputer"
    "XFER {ddname} TO {d}:{fn}.{ext}"
end define

!   Y tokens

define token "YM" -
    /language = FOCUS -
    /description = "Finds the number of months between two dates"
    "YM ({fromdate}, {todate}, {outfield})"
end define

!   Z tokens

!
!    Placeholder definitions:
!

!   A placeholders

define placeholder "-" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "-"
end define

define placeholder "," -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    ","
end define

define placeholder "&" -
    /language = FOCUS -
    /description = "Used to define variables in Dialog Manager" -
    /type = NONTERMINAL
    "&"
end define

define placeholder "across_phrase" -
    /language = FOCUS -
    /description = "verb phrase to sort TABLE request report rows" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "ACROSS [RANK] {fieldname} [in-groups-of] [across_columns_and_phrase]"
end define

define placeholder "across_columns_and_phrase" -
    /language = FOCUS -
    /description = "phrase for ACROSS verb in TABLE requests" -
    /type = NONTERMINAL
    "COLUMNS {value} {AND value}..."
end define

define placeholder "action" -
    /language = FOCUS -
    /description = "Extent of JOIN structure" -
    /type = TERMINAL
    "Action to be performed"
end define

define placeholder " ADD " -
    /language = FOCUS -
    /description = "Make define GLOBAL, beyond the scope of the current file" -
    /type = NONTERMINAL
    "ADD"
end define

define placeholder "ALL" -
    /language = FOCUS -
    /description = "Extent of JOIN structure" -
    /type = NONTERMINAL
    "ALL"
end define

define placeholder "AND" -
    /language = FOCUS -
    /description = "optional verb conjugate" -
    /type = NONTERMINAL
    "AND"
end define

define placeholder "AND compute" -
    /language = FOCUS -
    /description = "optional verb conjugate" -
    /type = NONTERMINAL
    "[AND] {compute_statement}"
end define

define placeholder "AND field1a" -
    /language = FOCUS -
    /description = "Clause to assign a name to the JOIN structure" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "AND {field1a}"
end define

define placeholder "AND value" -
    /language = FOCUS -
    /description = "Alphanumeric output field" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "AND {value}"
end define

define placeholder "APPEND" -
    /language = FOCUS -
    /description = "Adds the records to the end of the file" -
    /type = NONTERMINAL
    "APPEND"
end define

define placeholder "arithmetic_operator" -
    /language = FOCUS -
    /description = "Arithmetic operators for use with DEFINE & COMPUTE verbs" -
    /type = MENU
    "+"	    /DESCRIPTION = "addition"
    "-"	    /DESCRIPTION = "subtraction"
    "*"	    /DESCRIPTION = "multiplication"
    "/"	    /DESCRIPTION = "division"
    "**"    /DESCRIPTION = "exponentiation"
end define

define placeholder "AS filename" -
    /language = FOCUS -
    /description = "Name to give the extract file" -
    /type = NONTERMINAL
    "AS {filename}"
end define

define placeholder "AS d:filename" -
    /language = FOCUS -
    /description = "Name to give the extract file" -
    /type = NONTERMINAL
    "AS {d:filename}"
end define

define placeholder "AS joinname" -
    /language = FOCUS -
    /description = "Clause to assign a name to the JOIN structure" -
    /type = NONTERMINAL
    "AS {joinname}"
end define

define placeholder "AS 'name'" -
    /language = FOCUS -
    /description = "Name of the extract file created by the MATCH command" -
    /type = NONTERMINAL
    "AS '{text}'"
end define

define placeholder "AS 'text'" -
    /language = FOCUS -
    /description = "Substitute a label for the fieldname" -
    /type = NONTERMINAL
    "AS '{text}'"
end define

define placeholder "AS 'title'" -
    /language = FOCUS -
    /description = "Changes the title for the computed fields" -
    /type = NONTERMINAL
    "AS '{text}'"
end define

define placeholder "argument" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "A fieldname, expression, or another function"
end define

!   B placeholders

define placeholder "barlength" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The maximum length of the bar in characters"
end define

define placeholder "base" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Character string to be overlaid"
end define

define placeholder "baselen" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the base and output strings"
end define

define placeholder "bitnumber" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of the bit to be evaluated, counting from the leftmost bit"
end define

define placeholder "BOTTOM" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "BOTTOM"
end define

define placeholder "by_phrase" -
    /language = FOCUS -
    /description = "verb phrase to sort TABLE request report rows" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "BY [RANK] {fieldname} [in-groups-of] [by_rows_over_phrase]"
end define

define placeholder "by_rows_over_phrase" -
    /language = FOCUS -
    /description = "phrase for BY verb in TABLE requests" -
    /type = NONTERMINAL
    "ROWS {value} {OVER value}..."
end define

define placeholder "by_statement" -
    /language = FOCUS -
    /description = "verb phrase to sort TABLE request report rows" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{by_phrase}"
end define

!   C placeholders

define placeholder "case" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Label of the case to branch to"
end define

define placeholder "casename" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Label of the case execute & return from"
end define

define placeholder "CENTER" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "CENTER"
end define

define placeholder "char" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The repeating character to make up the bars"
end define

define placeholder "character" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The input character"
end define

define placeholder "CLEAR" -
    /language = FOCUS -
    /description = "Clear GLOBAL defines" -
    /type = NONTERMINAL
    "CLEAR"
end define

define placeholder "code" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter a code to test against the selected field"
end define

define placeholder "code result" -
    /language = FOCUS -
    /description = "Explicitly defined DECODE pair" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL 
    "{code} {result}"
end define

define placeholder "color" -
    /language = FOCUS -
    /description = "Available video display colors" -
    /type = MENU
    "AQUA"
    "AQUA-MEDIUM"
    "BLACK"
    "BLUE"
    "BLUE-CADET"
    "BLUE-CORNFLOWER"
    "BLUE-DARK_SLATE"
    "BLUE-LIGHT"
    "BLUE-LIGHT_STEEL"
    "BLUE-MEDIUM"
    "BLUE-MEDIUM_SLATE"
    "BLUE-MIDNIGHT"
    "BLUE-NAVY"
    "BLUE-SKY"
    "BLUE-SLATE"
    "BLUE-STEEL"
    "CORAL"
    "CYAN"
    "FIREBRICK"
    "GOLD"
    "GOLDENROD"
    "GOLDENROD-MEDIUM"
    "GREEN"
    "GREEN-DARK"
    "GREEN-DARK_OLIVE"
    "GREEN-FOREST"
    "GREEN-LIME"
    "GREEN-MEDIUM_FOREST"
    "GREEN-MEDIUM_SEA"
    "GREEN-MEDIUM_SPRING"
    "GREEN-PALE"
    "GREEN-SEA"
    "GREEN-SPRING"
    "GREEN-YELLOW"
    "GRAY-DARK_SLATE"
    "GRAY-DIM"
    "GRAY-LIGHT"
    "KHAKI"
    "MAGENTA"
    "MAROON"
    "ORANGE"
    "ORCHID"
    "ORCHID-DARK"
    "ORCHID-MEDIUM"
    "PINK"
    "PLUM"
    "RED"
    "RED-INDIAN"
    "RED-MEDIUM_VIOLET"
    "RED-ORANGE"
    "RED-VIOLET"
    "SALMON"
    "SIENNA"
    "TAN"
    "THISTLE"
    "TURQUOISE"
    "TURQUOISE-DARK"
    "TURQUOISE-MEDIUM"
    "VIOLET"
    "VIOLET-BLUE"
    "WHEAT"
    "WHITE"
    "YELLOW"
    "YELLOW-GREEN"
end define

define placeholder "alphanumeric_operator" -
    /language = FOCUS -
    /description = "Operators for use with DEFINE & COMPUTE verbs" -
    /type = MENU
    "||"    /DESCRIPTION = "strong concantenation, suppresses trailing blanks"
    "|"	    /DESCRIPTION = "weak concantenation, preserves field lengths"
end define

define placeholder "compute_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname1} COMPUTE {fieldname2}[/format] = {expression}"
end define

define placeholder "compute_statement" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /type = NONTERMINAL
    "COMPUTE {compute_phrase}..."
end define

define placeholder "compute_phrase" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{fieldname}[/format] = {expression} ; [NOPRINT] [IN n] [AS 'title']"
end define

define placeholder "crfile" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The name of the cross-referenced file"
end define

define placeholder "cstring" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Single quoted string or fieldname containing conversion characters"
end define

!   D placeholders

define placeholder "d" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Disk destination on the microcomputer for the file"
end define

define placeholder "days" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of days to add (positive) or subtract (negative)"
end define

define placeholder "ddname" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Named file in a FILEDEF statement designating an existing VAX file"
end define

define placeholder "define_expression" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{fieldname}[/format] [WITH realfield] = {expression} ;"
end define

define placeholder "delimiter" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "An alphanumeric character"
end define

define placeholder "dest" -
    /language = FOCUS -
    /description = "Report output destination" -
    /type = MENU
    "LOCAL"	/DESCRIPTION = "locally attached serial printer"
    "ONLINE"	/DESCRIPTION = "the terminal"
    "OFFLINE"	/DESCRIPTION = "the system printer"
end define

define placeholder "device" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Device where the file is stored: DISK, TERM (keyboard), or PRINTER"
end define

define placeholder "dir" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Valid VMS directory"
end define

define placeholder "dividend" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The dividend"
end define

define placeholder "divisor" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The divisor"
end define

define placeholder "domain" -
    /language = FOCUS -
    /description = "Report output destination" -
    /type = MENU
    "{fieldname}"   /DESCRIPTION = "obtain summary data qualified by a field"
    "TABLE"	    /DESCRIPTION = "obtain summary data for the entire retrieval"
end define

define placeholder "d:filename" -
    /language = FOCUS -
    /description = "Data file" -
    /type = TERMINAL
    "Filename and microcomputer drive (A,B,C..) for the extract file"
end define

!   E placeholders

define placeholder "ELSE default" -
    /language = FOCUS -
    /description = "Default action for DECODE statement" -
    /type = NONTERMINAL
    "ELSE {expression}"
end define

define placeholder "ELSE GOTO label" -
    /language = FOCUS -
    /description = "Default action for Dialog Manager IF control statement" -
    /type = NONTERMINAL
    "ELSE GOTO {label}"
end define

define placeholder "end" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Ending position of the substring within the parent string"
end define

define placeholder "error" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Error code to be returned if a value is not packed"
end define

define placeholder "equate_phrase" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /duplication = HORIZONTAL -
    /separator = "; " -
    /type = NONTERMINAL
    "{word} = {phrase}"
end define

define placeholder "equate_phrase(s)" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{equate_phrase}"
end define

define placeholder "ext" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Microcomputer filename extension"
end define

define placeholder "expression" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "A logical or mathematical expression resulting in a condition"
end define

!   F placeholders

define placeholder "field(s)" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = " AND " -
    /type = NONTERMINAL
    "[prefix]{fieldname}"
end define

define placeholder "field1" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Hostfile fieldname containing values to share with a cross-referenced file"
end define

define placeholder "field1a" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Subordinate alphanumeric fields to share with the cross-referenced file"
end define

define placeholder "field2" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Name of the field in the cross-referenced file containing values in field1"
end define

define placeholder "fieldname" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Name of a field in the active file"
end define

define placeholder "fieldname1" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Name of a field in the active file"
end define

define placeholder "fieldname2" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "New field equal to the expression"
end define

define placeholder "fieldname/format" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "{fieldname}[/format]"
end define

define placeholder "filename" -
    /language = FOCUS -
    /description = "Data file" -
    /type = TERMINAL
    "A valid external or FOCUS data file, an extract file, or a JOIN structure"
end define

define placeholder "FILE filename" -
    /language = FOCUS -
    /description = "file request for MATCH request" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "FILE {filename}"
    "{verb_statement}"
    "[if_statement]..."
    "[by_statement]..."
    "AFTER MATCH HOLD [AS 'name'] [relational_operator]"
end define

define placeholder "FOCUS n" -
    /language = FOCUS -
    /description = "QUIT command option to exit FOCUS environment" -
    /type = NONTERMINAL
    "FOCUS {n}"
end define

define placeholder "for_phrase" -
    /language = FOCUS -
    /description = "verb phrase to sort TABLE request report rows" -
    /type = NONTERMINAL
    "FOR {fieldname} {value} {OVER value}..."
end define

define placeholder "fn" -
    /language = FOCUS -
    /description = "Alpha input file" -
    /type = TERMINAL
    "Name for the file on the microcomputer"
end define

define placeholder "fromdate" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The starting date in year-month format"
end define

define placeholder "fold-line_clause" -
    /language = FOCUS -
    /description = "ON or BY command option" -
    /type = NONTERMINAL
    "{fieldname} FOLD-LINE"
end define

define placeholder "form" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "BINARY"	/DESCRIPTION = "data in HOLD files in BINARY format"
    "ALPHA"	/DESCRIPTION = "data in HOLD files in ALPHA format"
end define

define placeholder "/format" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "/{format}"
end define

define placeholder "format" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "I{n}[opt]..."	/DESCRIPTION = "Integer format, 1<n<9"
    "D{n}[.n][opt]..."	/DESCRIPTION = "Decimal format, 1<n<15"
    "P{n}[.n][opt]..."	/DESCRIPTION = "Packed decimal, 1<n<15"
    "F{n}[.n][opt]..."	/DESCRIPTION = "Floating point, 1<n<9"
    "A{n}"		/DESCRIPTION = "Alphanumeric data, 1<n<256"
end define

define placeholder ".format." -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    ".{format}."
end define

define placeholder " FORMAT " -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "DIF"	/DESCRIPTION = "Spreadsheet program compatible output format" 
    "WP"	/DESCRIPTION = "Word-processing program compatible format" 
    "LOTUS"	/DESCRIPTION = "LOTUS spreadsheet compatible format"
    "CALC"	/DESCRIPTION = "FOCUS spreadsheet program (HOLD files only)"
    "BINARY"	/DESCRIPTION = "Internal binary format (HOLD files only)"
end define

!   G placeholders

!   H placeholders

define placeholder "HOLD" -
    /language = FOCUS -
    /description = "CHECK command option" -
    /type = NONTERMINAL
    "HOLD"
end define

define placeholder "hold_phrase" -
    /language = FOCUS -
    /description = "HOLD command options" -
    /type = NONTERMINAL
    "HOLD [AS filename] [ FORMAT ] [ MISSING ]"
end define

define placeholder "hold_or_save_or_total" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "{hold_phrase}"	/DESCRIPTION = "create extract file and master"
    "{pchold_phrase}"	/DESCRIPTION = "for microcomputer file transfers"
    "{savb_phrase}"	/DESCRIPTION = "data extracted in binary format"
    "{save_phrase}"	/DESCRIPTION = "data extracted to a file"
    "COLUMN-TOTAL"	/DESCRIPTION = "calculate column totals"
    "ROW-TOTAL"		/DESCRIPTION = "calculate row totals"
end define

define placeholder "hostfile" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The name of the host file"
end define

!   I placeholders

define placeholder "if_statement" -
    /language = FOCUS -
    /description = "verb clause for record screening in TABLE requests" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "IF {selection_phrase}"
end define

define placeholder "IN n" -
    /language = FOCUS -
    /description = "Specifies column locations" -
    /type = TERMINAL
    "IN {n}"
end define

define placeholder "incode" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The decimal equivalent of the character to be converted"
end define

define placeholder "indate" -
    /language = FOCUS -
    /description = "Alphanumeric input field" -
    /type = TERMINAL
    "The input date"
end define

define placeholder "inlength" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the input field"
end define

define placeholder "inlen" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the input field containing the character string"
end define

define placeholder "infield" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Alphanumeric input field"
end define

define placeholder "invalid_phrase" -
    /language = FOCUS -
    /description = "ON command option" -
    /type = NONTERMINAL
    "INVALID {invalid_clause}"
end define

define placeholder "invalid_clause" -
    /language = FOCUS -
    /description = "ON INVALID clauses" -
    /type = MENU
    "GOTO {case}"		    /DESCRIPTION = "unconditional branch"
    "IF {expression} GOTO {case}"   /DESCRIPTION = "conditional branch"
    "TYPE [ON ddname]"		    /DESCRIPTION = "display a terminal message"
    "PERFORM {casename}"	    /DESCRIPTION = "execute routine & continue"
end define

define placeholder "in-groups-of" -
    /language = FOCUS -
    /description = "option for ACROSS or BY verbs" -
    /type = NONTERMINAL
    "IN-GROUPS-OF {value} TOP {limit}"
end define

!   J placeholders

define placeholder "joinname" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Name assigned to the JOIN structure, up to 8 characters in length"
end define

define placeholder "join_structure" -
    /language = FOCUS -
    /description = "Format of the JOIN command" -
    /type = NONTERMINAL
    "{field1} [AND field1a]... IN {hostfile} TO [ALL] {field2} IN {crfile} [AS joinname]" 
end define

!   K placeholders

define placeholder "/key" -
    /language = FOCUS -
    /description = "record selection using group key" -
    /type = NONTERMINAL
    "/{text}"
end define

!   L placeholders

define placeholder "label" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter text for label"
end define

define placeholder "let_statement_or_block" -
    /language = FOCUS -
    /description = "LET command options" -
    /type = MENU
    "LET CLEAR {word}..."    /DESCRIPTION = "command to clear LET substitutions"
    "LET SAVE [filename]"    /DESCRIPTION = "substitutions saved in a file"
    "LET {equate_phrase}..." /DESCRIPTION = "assign word substitutions"
    "{let_block}..."	     /DESCRIPTION = "long form of the LET command"
end define

define placeholder "limit" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = TERMINAL
    "limit for the number of results to be grouped"
end define

define placeholder "list" -
    /language = FOCUS -
    /description = "one of a set of responses" -
    /duplication = HORIZONTAL -
    /separator = ", " -
    /type = NONTERMINAL
    "{list}"
end define

define placeholder ".(list)." -
    /language = FOCUS -
    /description = "set of allowed responses" -
    /type = NONTERMINAL
    ".({list}...)."
end define

define placeholder "literal" -
    /language = FOCUS -
    /description = "expression to test IF relations" -
    /duplication = HORIZONTAL -
    /separator = " OR " -
    /type = MENU
    "{text}"	    /DESCRIPTION = "Alphanumeric or numeric value"    
    "{text}[/key]"  /DESCRIPTION = "record selection using group key"    
    "'{text}'"	    /DESCRIPTION = "literal containing embedded space or spaces"
    "MISSING"	    /DESCRIPTION = "identifies fields where data is missing"
end define

define placeholder "LOWER" -
    /language = FOCUS -
    /description = "Accepts lowercase letters from the keyboard" -
    /type = NONTERMINAL
    "LOWER"
end define

define placeholder "LRECL n" -
    /language = FOCUS -
    /description = "Specifies the record limit (maximum n=256)" -
    /type = NONTERMINAL
    "LRECL {n}"
end define

!   M placeholders

define placeholder "mask" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = "" -
    /type = MENU
    "A"	    /DESCRIPTION = "letters A-Z (upper or lower case)"
    "9"	    /DESCRIPTION = "digits 0-9"
    "X"	    /DESCRIPTION = "letters A-Z or digits 0-9"
    "$"	    /DESCRIPTION = "any character"
end define

define placeholder "match_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "MATCH {action}"
end define

define placeholder "matchnomatch_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "MATCH/NOMATCH {action}"
end define

define placeholder "maxvalue" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The value of the bar at maximum length"
end define

define placeholder "missing" -
    /language = FOCUS -
    /description = "type of report missing segment handling" -
    /type = MENU
    "OFF"   /DESCRIPTION = "records with missing segment instances don't appear"
    "ON"    /DESCRIPTION = "instances appear, unless screened by IF clause"
    "PASS"  /DESCRIPTION = "instances appear regardless of IF screening"
end define

define placeholder " MISSING " -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "MISSING {switch}"
end define

define placeholder "months" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of months to add (positive) or subtract (negative)"
end define

define placeholder "MULTILINES" -
    /language = FOCUS -
    /description = "Suppress action for single-line results" -
    /type = NONTERMINAL
    "MULTILINES"
end define

define placeholder ", 'mask'" -
    /language = FOCUS -
    /description = "Optional mask used for EDIT of database fields" -
    /type = NONTERMINAL
    ", '{mask}...'"
end define

!   N placeholders

define placeholder "n" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Enter a number"
end define

define placeholder ".n" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = NONTERMINAL
    ".{n}"
end define

define placeholder "name" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter a name for the variable"
end define

define placeholder "name_value" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = ", " -
    /type = NONTERMINAL
    "[&]&{name}={value}"
end define

define placeholder "newformat" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The format of the converted date"
end define

define placeholder "next_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "NEXT {action}"
end define

define placeholder "nomatch_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "NOMATCH {action}"
end define

define placeholder "nonext_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "NONEXT {action}"
end define

define placeholder "NOPRINT" -
    /language = FOCUS -
    /description = "Suppresses printing of field" -
    /type = NONTERMINAL
    "NOPRINT"
end define

define placeholder "noprint_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} NOPRINT"
end define

define placeholder "number" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Number or field containing a number"
end define

define placeholder "numchar" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Number of characters to compare against the mask"
end define

!   O placeholders

define placeholder "oldformat" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The format of the input date"
end define

define placeholder "ON ddname" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "[ON] {ddname}"
end define

define placeholder "on_phrase" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "{invalid_phrase}"	    /DESCRIPTION = "action for invalidated transactions"
    "{match_phrase}"	    /DESCRIPTION = "action if MATCH instances are found"
    "{nomatch_phrase}"	    /DESCRIPTION = "action if MATCH instances not found"
    "{matchnomatch_phrase}" /DESCRIPTION = "action regardless of MATCH outcome"
    "{next_phrase}"	    /DESCRIPTION = "action if there is a NEXT instance"
    "{nonext_phrase}"	    /DESCRIPTION = "action if there no NEXT instance"
    "{table_phrase}"	    /DESCRIPTION = "action phrase for TABLE requests"
end define

define placeholder "on_statement" -
    /language = FOCUS -
    /description = "verb for TABLE requests" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "ON {table_clause}"
end define

define placeholder "opt" -
    /language = FOCUS -
    /description = "Display options for editing field formats" -
    /duplication = HORIZONTAL -
    /separator = "" -
    /type = MENU
    "C"	    /DESCRIPTION = "Comma inclusion"
    "S"	    /DESCRIPTION = "Zero suppression"
    "B"	    /DESCRIPTION = "Bracket negatives"
    "R"	    /DESCRIPTION = "Credit negative"
    "L"	    /DESCRIPTION = "Leading zeros"
    "M"	    /DESCRIPTION = "FLoating dollar"
    "N"	    /DESCRIPTION = "Non-floating dollar"
    "E"	    /DESCRIPTION = "Scientific notation"
    "D"	    /DESCRIPTION = "Date: prints a value from 1 through 31"
    "M"	    /DESCRIPTION = "Month: prints a value from 1 through 12"
    "Y"	    /DESCRIPTION = "2-digit year"
    "YY"    /DESCRIPTION = "4-digit year"
    "T"	    /DESCRIPTION = "Abbreviated month or day: 3 letter uppercase"
    "t"	    /DESCRIPTION = "Abbreviated month or day: 3 letter upper/lowercase"
    "TR"    /DESCRIPTION = "Complete month or day: uppercase"
    "tr"    /DESCRIPTION = "Complete month or day: upper/lowercase"
    "Q"     /DESCRIPTION = "Quarter: interprets and prints quarter(1-4)"
    "W"	    /DESCRIPTION = "Day of week: print number for day of week(1-7)"
    "w"	    /DESCRIPTION = "Abbreviated day of week"
    "J"	    /DESCRIPTION = "Julian format"
end define

define placeholder "option" -
    /language = FOCUS -
    /description = "screen control options" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = MENU
    "UPPER"	/DESCRIPTION = "translate all characters to uppercase"
    "LOWER"	/DESCRIPTION = "leads lowercase data entered from the screen"
    "BEGIN"	/DESCRIPTION = "support use of other control statements"
    "END"	/DESCRIPTION = "signal end for the form"
    "LINE {n}"	/DESCRIPTION = "specify starting line number for the form"
    "NOCLEAR"	/DESCRIPTION = "data values remain after data transmission"
    "CLEAR"	/DESCRIPTION = "data values clear after every data transmission"
    "WIDTH {n}"	/DESCRIPTION = "total number of characters across the screen"
end define

define placeholder "outcode" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The decimal equivalent of the character to be substituted"
end define

define placeholder "outlen" -
    /language = FOCUS -
    /description = "Numeric output field" -
    /type = TERMINAL
    "The maximum size of a token"
end define

define placeholder "outlength" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The length in bytes"
end define

define placeholder "outfield" -
    /language = FOCUS -
    /description = "Alphanumeric output field" -
    /type = TERMINAL
    "Field to contain the result"
end define

define placeholder "OVER value" -
    /language = FOCUS -
    /description = "Alphanumeric output field" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "OVER {value}"
end define

!   P placeholders

define placeholder "pad" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "NUMERIC"	    /DESCRIPTION = "right hand keypad is NUMERIC"
    "APPLICATION"   /DESCRIPTION = "right hand keypad is APPLICATION"
end define

define placeholder "PAGE-BREAK AND" -
    /language = FOCUS -
    /description = "Subheading and subfooting command options" -
    /type = NONTERMINAL
    "PAGE-BREAK AND"
end define

define placeholder "page-break_clause" -
    /language = FOCUS -
    /description = "Alphanumeric output field" -
    /type = NONTERMINAL
    "{fieldname} PAGE-BREAK [REPAGE]"
end define

define placeholder "parameter" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = ", " -
    /type = MENU
    "ALL = {missing}"	    /DESCRIPTION = "report missing segments handling"
    "BCOLOR = {color}"	    /DESCRIPTION = "selects display background color"
    "BINS = {n}"	    /DESCRIPTION = "number of 4096 block memory buffers"
    "CDN = {switch}"	    /DESCRIPTION = "continental decimal notation"
    "COLOR = {switch}"	    /DESCRIPTION = "select color or monochrome display"
    "DEFAULT = {dir}"	    /DESCRIPTION = "initial search directory"
    "FILENAME = {filename}" /DESCRIPTION = "default filename for FOCUS commands"
    "FILE = {filename}"	    /DESCRIPTION = "default filename for FOCUS commands"
    "HOLDDEFAULT = {form}"  /DESCRIPTION = "the default HOLD file format"
    "ICOLOR = {color}"	    /DESCRIPTION = "selects intensified text color"
    "KEYPAD = {pad}"	    /DESCRIPTION = "selects keypad type"
    "LINES = {n}"	    /DESCRIPTION = "number of lines per printed page"
    "MESSAGE = {switch}"    /DESCRIPTION = "display informational messages"
    "MSG = {switch}"	    /DESCRIPTION = "display informational messages"
    "MORE = {switch}"	    /DESCRIPTION = "selects screen output pause"
    "NCOLOR = {color}"	    /DESCRIPTION = "selects normal screen text color"
    "NODATA = {string}"	    /DESCRIPTION = "string to represent missing data"
    "NA = {string}"	    /DESCRIPTION = "string to represent missing data"
    "PAGE-NUM = {setting}"  /DESCRIPTION = "selects output page numbering"
    "PAGE = {setting}"	    /DESCRIPTION = "selects outputs page numbering"
    "PANEL = {n}"   	    /DESCRIPTION = "maximum width of a report panel"
    "PAPER = {n}"	    /DESCRIPTION = "physical length of ouput paper"
    "PASS = {password}"	    /DESCRIPTION = "grants access to protected files"
    "PAUSE = {switch}"	    /DESCRIPTION = "pause before displaying reports"
    "PRINT = {dest}"        /DESCRIPTION = "report output destination"
    "PROMPT = {ptype}"      /DESCRIPTION = "selects FOCUS prompt type"
    "RCOLOR = {color}"	    /DESCRIPTION = "selects reverse screen video color"
    "SHADOW = {switch}"	    /DESCRIPTION = "activates absolute file integrity"
    "TEMPDIR = {dir}"	    /DESCRIPTION = "directory to store extract files"
    "TITLE = {switch}"      /DESCRIPTION = "selects pre-defined column titles"
    "USER = {password}"	    /DESCRIPTION = "controls access to protected files"
    "WIDTH = {n}"           /DESCRIPTION = "number of report columns displayed"
end define

define placeholder "parent" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Parent string or field containing the parent string"
end define

define placeholder "password" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "A user entered password"
end define

define placeholder "pchold_phrase" -
    /language = FOCUS -
    /description = "HOLD command options" -
    /type = NONTERMINAL
    "PCHOLD [AS d:filename] [ FORMAT ]"
end define

define placeholder "phrase" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Equivalent string, up to 256 characters in length"
end define

define placeholder "PICTURE" -
    /language = FOCUS -
    /description = "CHECK command option" -
    /type = NONTERMINAL
    "PICTURE"
end define

define placeholder "position" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Position in the base string where the overlay is to begin"
end define

define placeholder "power" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The power that e is being raised to"
end define

define placeholder "prefix" -
    /language = FOCUS -
    /description = "verb field prefixes" -
    /type = MENU
    "AVE."	/DESCRIPTION = "average value of a field"
    "ASQ."	/DESCRIPTION = "average sum of squares (standard deviation)"
    "MAX."	/DESCRIPTION = "maximum field value"
    "MIN."	/DESCRIPTION = "minimum field value"
    "PCT."	/DESCRIPTION = "percentage of total values for a given field"
    "RPCT."	/DESCRIPTION = "percent of a row (ACROSS sort phrase only)"
    "PCT.CNT."  /DESCRIPTION = "relative percentages of all instances found"
    "FST."	/DESCRIPTION = "selects the first record"
    "LST."	/DESCRIPTION = "selects the last record"
    "CNT."	/DESCRIPTION = "count occurrences and summarize"
    "SUM."	/DESCRIPTION = "sum field values"
    "SEG."	/DESCRIPTION = "select the complete segment"
    "TOT."	/DESCRIPTION = "total and put data into headings"
end define

!   Q placeholders

!   R placeholders

define placeholder "RANK" -
    /language = FOCUS -
    /description = "option for BY verb phrase" -
    /type = MENU
    "HIGHEST [n]"   /DESCRIPTION = "Sort from HIGHEST to LOWEST"
    "TOP [n]"	    /DESCRIPTION = "Sort from TOP record"
    "LOWEST [n]"    /DESCRIPTION = "Sort from LOWEST to HIGHEST"
end define

define placeholder "RANKED BY" -
    /language = FOCUS -
    /description = "option for BY verb phrase" -
    /type = NONTERMINAL
    "RANKED BY {RANK} {fieldname}"
end define

define placeholder "readlimit_phrase" -
    /language = FOCUS -
    /description = "limit based on number of successful reads" -
    /type = NONTERMINAL
    "READLIMIT EQ {n}" 
end define

define placeholder "recap_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname1} RECAP {fieldname2}[/format] = {expression}"
end define

define placeholder "recompute_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} RECOMPUTE [AS 'text'] [MULTILINES]"
end define

define placeholder "RECFM F" -
    /language = FOCUS -
    /description = "Specified fixed length records" -
    /type = NONTERMINAL
    "RECFM F"
end define

define placeholder "recordlimit_phrase" -
    /language = FOCUS -
    /description = "limit the number of records retrieved" -
    /type = NONTERMINAL
    "RECORDLIMIT EQ {n}"
end define

define placeholder "relation" -
    /language = FOCUS -
    /description = "Logical relations" -
    /type = MENU
    "EQ"		    /DESCRIPTION = "Equal to"
    "IS"		    /DESCRIPTION = "Equal to"
    "NE"		    /DESCRIPTION = "Not equal to"
    "IS-NOT"		    /DESCRIPTION = "Not equal to
    "GE"		    /DESCRIPTION = "Greater than or equal to"
    "FROM"		    /DESCRIPTION = "Greater than or equal to"
    "IS-FROM"		    /DESCRIPTION = "Greater than or equal to"
    "GT"		    /DESCRIPTION = "Greater than"
    "EXCEEDS"		    /DESCRIPTION = "Greater than"
    "IS-MORE-THAN"	    /DESCRIPTION = "Greater than"
    "LT"		    /DESCRIPTION = "Less than"
    "IS-LESS-THAN"	    /DESCRIPTION = "Less than"
    "LE"		    /DESCRIPTION = "Less than or equal to"
    "TO"		    /DESCRIPTION = "Less than or equal to"
    "IS-FROM {literal} TO"  /DESCRIPTION = "Within a range of values"
    "NOT-FROM {literal} TO" /DESCRIPTION = "Not within a range of values"
    "CONTAINS"		    /DESCRIPTION = "Includes a matching string"
    "OMITS"		    /DESCRIPTION = "Omits if a string matches"
    "INCLUDES"		    /DESCRIPTION = "include a list of literals"
    "EXCLUDES"		    /DESCRIPTION = "excludes a set of literals"
end define

define placeholder "relation_phrase" -
    /language = FOCUS -
    /description = "relational expression used for record selection" -
    /type = NONTERMINAL
    "{fieldname} {relation} {literal}..." 
end define

define placeholder "relational_operator" -
    /language = FOCUS -
    /description = "relational operator used for MATCH command selections" -
    /type = MENU
    "OLD-OR-NEW"    /DESCRIPTION = "records appearing in old OR new files"
    "OLD-AND-NEW"   /DESCRIPTION = "records appearing in BOTH old and new files"
    "OLD-NOT-NEW"   /DESCRIPTION = "records appearing in ONLY the old file"
    "NEW-NOT-OLD"   /DESCRIPTION = "records appearing in ONLY the new file"
    "OLD-NOR-NEW"   /DESCRIPTION = "set of NON-MATCHING records from both files"
    "OLD"	    /DESCRIPTION = "only records from the OLD file will appear"
    "NEW"	    /DESCRIPTION = "only records from the NEW file will appear"
end define

define placeholder "reserved_variables" -
    /language = FOCUS -
    /description = "reserved variables" -
    /type = MENU
    "&CURSOR"    /DESCRIPTION = "cursor position"
    "&CURSORAT"  /DESCRIPTION = "reads the cursor position"
    "&ECHO"      /DESCRIPTION = "controls terminal display during execution"
    "&PFKEY"     /DESCRIPTION = "PF key function"
    "&QUIT"      /DESCRIPTION = "controls QUIT or PF1 FOCEXEC exit"
    "&STACK"     /DESCRIPTION = "controls control statement or FOCEXEC execution"
end define

define placeholder "result" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter a value to be assigned if the decode matches the code"
end define

define placeholder "RETRIEVE" -
    /language = FOCUS -
    /description = "CHECK command option" -
    /type = NONTERMINAL
    "RETRIEVE"
end define

define placeholder "REPAGE" -
    /language = FOCUS -
    /description = "Resets the page number to 1 at the sort break" -
    /type = NONTERMINAL
    "REPAGE"
end define

!   S placeholders

define placeholder "savb_phrase" -
    /language = FOCUS -
    /description = "ON TABLE command option" -
    /type = NONTERMINAL
    "SAVB [AS filename] [ MISSING ]"
end define

define placeholder "save_phrase" -
    /language = FOCUS -
    /description = "ON TABLE command option" -
    /type = NONTERMINAL
    "SAVE [AS filename] [ FORMAT ] [ MISSING ]"
end define

define placeholder "screen_element" -
    /language = FOCUS -
    /description = "User defined text, fields or spot markers" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "[-][text]"
end define

define placeholder "seed" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Seed or field containing the seed for the random number generator"
end define

define placeholder "select_expression" -
    /language = FOCUS -
    /description = "code or file to use with DECODE verb" -
    /type = MENU
    "{code result}..."  /DESCRIPTION = "explicitly defined decode list"
    "{filename}"        /DESCRIPTION = "file containing the decode list"
end define

define placeholder "selection_phrase" -
    /language = FOCUS -
    /description = "record selection phrase for IF verb" -
    /type = MENU
    "{recordlimit_phrase}"  /DESCRIPTION = "based retrievals"
    "{readlimit_phrase}"    /DESCRIPTION = "based on successful reads"
    "{relation_phrase}"	    /DESCRIPTION = "based on relational expression"
end define

define placeholder "setting" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = MENU
    "ON"        /DESCRIPTION = "page numbers displayed"
    "OFF"       /DESCRIPTION = "page numbering suppressed"
    "NOPAGE"	/DESCRIPTION = "page breaks suppressed"
end define

define placeholder "skip-line_clause" -
    /language = FOCUS -
    /description = "ON or BY command option" -
    /type = NONTERMINAL
    "{fieldname} SKIP-LINE"
end define

define placeholder "statement" -
    /language = FOCUS -
    /description = "Any valid FOCUS statement or command" -
    /type = TERMINAL
    "Enter any valid FOCUS statement or command"
end define

define placeholder "source" -
    /language = FOCUS -
    /description = "DECODE source type" -
    /type = MENU
    "{fieldname}"   /DESCRIPTION = "defined or explicit database field"
    "SELECT"        /DESCRIPTION = "to look for values in a literal file"
end define

define placeholder "start" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Starting position of the substring within the parent string"
end define

define placeholder "startbit" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of the first bit in the string, counting from the left-most bit"
end define

define placeholder "statistical_variables" -
    /language = FOCUS -
    /description = "variables reserved for system use" -
    /type = MENU
    "&LINES"	/DESCRIPTION = "number lines printed in last report"
    "&RECORDS"	/DESCRIPTION = "number records retrieved in last report"
    "&TRANS"	/DESCRIPTION = "number transactions processed"
    "&ACCEPTS"	/DESCRIPTION = "number transactions rejected"
    "&NOMATCH"	/DESCRIPTION = "number transactions rejected as not matching"
    "&FORMAT"	/DESCRIPTION = "number transactions rejected for format error"
    "&INVALID"	/DESCRIPTION = "number transactions rejected because of invalid cond."
    "&DUPLS"	/DESCRIPTION = "number transactions rejected because of duplicates"
    "&INPUT"	/DESCRIPTION = "number segments input"
    "&CHNGD"	/DESCRIPTION = "number segments updated"
    "&DELTD"	/DESCRIPTION = "number segments deleted"
    "&BASEIO"	/DESCRIPTION = "number input/output operations"
    "&READS"	/DESCRIPTION = "number physical reads from external file"
    "&REJECTS"	/DESCRIPTION = "number of other rejected transactions"
end define

define placeholder "string" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Alphanumeric string"
end define

define placeholder "structure_or_clear" -
    /language = FOCUS -
    /description = "JOIN command options" -
    /type = MENU
    "CLEAR {joinname}"	/DESCRIPTION = "clear a JOIN structure"
    "{join_structure}"	/DESCRIPTION = "create a JOIN structure"
end define

define placeholder "subfoot_clause" -
    /language = FOCUS -
    /description = "report footing insertion phrase" -
    /type = NONTERMINAL
    "{fieldname} [PAGE-BREAK AND] SUBFOOT"
    "{text}"
end define

define placeholder "subhead_clause" -
    /language = FOCUS -
    /description = "subheading insertion phrase" -
    /type = NONTERMINAL
    "{fieldname} [PAGE-BREAK AND] SUBHEAD"
    "{text}"
end define

define placeholder "sublength" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the substring"
end define

define placeholder "sublen" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the substring"
end define

define placeholder "subsize" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The maximum length of a subline"
end define

define placeholder "substring" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Character string within the parent string"
end define

define placeholder "sub-total_clause" -
    /language = FOCUS -
    /description = "Action verb for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} SUB-TOTAL [AS 'text'] [MULTILINES]"
end define

define placeholder "subtotal_clause" -
    /language = FOCUS -
    /description = "Action verb for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} SUBTOTAL {field(s)}..."
end define

define placeholder "summarize_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} SUMMARIZE {field(s)}... [MULTILINES]"
end define

define placeholder "sup-print_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} SUP-PRINT"
end define

define placeholder "switch" -
    /language = FOCUS -
    /description = "Boolean flag" -
    /type = MENU
    "ON"
    "OFF"
end define

define placeholder "system_variables" -
    /language = FOCUS -
    /description = "variables reserved for system use" -
    /type = MENU
    "&DATE"	/DESCRIPTION = "current date, displayed as MM/DD/YY"
    "&TOD"	/DESCRIPTION = "time of day, displayed as HH.MM.SS"
    "&MDY"	/DESCRIPTION = "current date in MMDDYY form"
    "&YMD"	/DESCRIPTION = "current date in YYMMDD form"
    "&ECHO"	/DESCRIPTION = "Test mode"
    "&IORETURN"	/DESCRIPTION = "-READ or -WRITE return: 0=success, else 1"
    "&RETCODE"	/DESCRIPTION = "-VMS return: 0=success, else 1"
end define

!   T placeholders

define placeholder "table_clause" -
    /language = FOCUS -
    /description = "ON action phrases for TABLE requests" -
    /type = NONTERMINAL
    "TABLE {hold_or_save_or_total}"
end define

define placeholder "table_phrase" -
    /language = FOCUS -
    /description = "Options for ON or BY verbs in table requests" -
    /duplication = VERTICAL -
    /type = MENU
    "{sub-total_clause}"    /DESCRIPTION = "subtotal all numerical values"
    "{subtotal_clause}"	    /DESCRIPTION = "subtotal only specified field"
    "{recompute_clause}"    /DESCRIPTION = "recompute at specified sort break"
    "{summarize_clause}"    /DESCRIPTION = "recompute values at each sort break"
    "{recap_clause}"	    /DESCRIPTION = "subtotal but only display result"
    "{compute_clause}"	    /DESCRIPTION = "subtotal but only display result"
    "{page-break_clause}"   /DESCRIPTION = "new page started at sort break"
    "{skip-line_clause}"    /DESCRIPTION = "blank line inserted at sort break"
    "{subfoot_clause}"      /DESCRIPTION = "footing inserted at sort break"
    "{subhead_clause}"      /DESCRIPTION = "subheading inserted at sort break"
    "{fold-line_clause}"    /DESCRIPTION = "shift columns following sort break"
    "{under-line_clause}"   /DESCRIPTION = "draw a line when field changes"
    "{sup-print_clause}"    /DESCRIPTION = "suppress printing of field values"
    "{noprint_clause}"	    /DESCRIPTION = "suppress printing of field values"
    "{table_clause}"	    /DESCRIPTION = "verbs specific to TABLE requests"
end define

define placeholder "tbs" -
	/language = FOCUS -
	/description = "To be specified" -
	/type = TERMINAL
	"Enter a text string"
end define

define placeholder "text" -
    /language = FOCUS -
    /description = "Alpha input string" -
    /type = TERMINAL
    "Enter a text string"
end define

define placeholder "text." -
    /language = FOCUS -
    /description = "Alpha input string" -
    /type = NONTERMINAL
    ".{text}"
end define

define placeholder "THEN" -
    /language = FOCUS -
    /description = "Alpha input string" -
    /type = NONTERMINAL
    "THEN"
end define

define placeholder "todate" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The ending date in year-month format"
end define

define placeholder "toknum" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of the token to extract"
end define

define placeholder "ptype" -
    /language = FOCUS -
    /description = "Prompt type" -
    /type = MENU
    "NORMAL"	/DESCRIPTION = "FOCUS standard single or double carat prompts"
    "EXPANDED"	/DESCRIPTION = "3-character abbreviations of commands"
end define

!   U placeholders

define placeholder "under-line_clause" -
    /language = FOCUS -
    /description = "ON or BY command option" -
    /type = NONTERMINAL
    "{fieldname} UNDER-LINE"
end define

!   V placeholders

define placeholder "value" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter a value"
end define

define placeholder "var" -
    /language = FOCUS -
    /description = "Variations used to pass printer control characters" -
    /type = MENU
    "+"	/DESCRIPTION = "suppresses the line feed following the printing of text"
    "0" /DESCRIPTION = "forces a line feed before the message text is displayed"
    "1" /DESCRIPTION = "forces a page eject before the message is printed"
end define

define placeholder "variable," -
    /language = FOCUS -
    /description = "User defined local or global variable, read from a file" -
    /duplication = HORIZONTAL -
    /separator = ", " -
    /type = NONTERMINAL
    "[&]&{name}[.format.]"
end define

define placeholder "verb" -
    /language = FOCUS -
    /description = "action for TABLE requests" -
    /duplication = VERTICAL -
    /type = MENU
    "PRINT" /TOKEN
    "LIST"  /TOKEN
    "SUM"   /TOKEN
    "WRITE" /TOKEN
    "ADD"   /TOKEN
    "COUNT" /TOKEN
end define

define placeholder "verb_statement" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{verb} [AND compute]"
end define

!   W placeholders

define placeholder "word" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = TERMINAL
    "Character string to replace expression, up to 80 characters in length"
end define

define placeholder "WITH realfield" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "WITH {fieldname}"
end define

!   X placeholders

!   Y placeholders

define placeholder "year-month" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The input date in year-month format"
end define

define placeholder "year-month-day" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The input date in year-month-day format"
end define

!   Z placeholders

!
!   FOCUS command construct placeholder templates:
!

define placeholder "define_block" -
	/language = FOCUS -
	/description = "DEFINE request block" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"DEFINE FILE {filename} [fieldname] [CLEAR] [ADD]"
	"{define_expression}..."
	"END"
end define

define placeholder "let_block" -
	/language = FOCUS -
	/description = "Long form of the LET command" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"LET"
	"{equate_phrase(s)}..."
	"END"
end define

define placeholder "table_block" -
	/language = FOCUS -
	/description = "TABLE request block" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"TABLE FILE {filename}"
	"{verb_statement}..."
	"[if_statement]..."
	"[by_statement]..."
	"[on_statement]..."
	"END"
end define

define placeholder "tablef_block" -
	/language = FOCUS -
	/description = "TABLEF request block" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"TABLEF FILE {filename}"
	"{verb_statement}"
	"END"
end define

define placeholder "match_block" -
	/language = FOCUS -
	/description = "TABLE request block" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"MATCH FILE {filename}"
	"{verb_statement}"
	"[if_statement]..."
	"[by_statement]..."
	"RUN"
	"{FILE filename}..."
	"END"
end define

!
!   Module level placeholder templates:
!

define placeholder "focexec template" -
	/language = FOCUS -
	/description = "FOCUS executable template" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"[module level comments]"
	""
	"[include file]..."
	""
	"[program unit]..."
	""
end define

define placeholder "include file" -
	/language = FOCUS -
	/description = "Focexec file to include" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-INCLUDE {filespec}"
end define

define placeholder "program unit" -
	/language = FOCUS -
	/description = "Program subroutine or block structure" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"[unit level comments]"
	"[statement or construct]..."
end define

define placeholder "statement or construct" -
	/language = FOCUS -
	/description = "A program functional block" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = MENU
	"statement"	    /PLACEHOLDER
	"line comment"	    /PLACEHOLDER
	"comment block"	    /PLACEHOLDER
end define

define placeholder "line comment" -
	/language = FOCUS -
	/description = "A line comment" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-* [text]"
end define

define placeholder "comment block" -
	/language = FOCUS -
	/description = "A block comment" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-*++"
	"-*"
	"-*  [tbs]..."
	"-*"
	"-*--"
end define

define placeholder "unit level comments" -
	/language = FOCUS -
	/description = "Unit comments" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-*++"
	"-*"
	"-*  FUNCTIONAL DESCRIPTION:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  FORMAL PARAMETERS:" 
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  IMPICIT INPUTS:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  IMPLICIT OUTPUTS:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  SIDE EFFECTS:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*--"
end define

define placeholder "module level comments" -
	/language = FOCUS -
	/description = "Module comments" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-*++"
	"-*"
	"-*  FACILITY:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  ABSTRACT:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  AUTHORS:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  CREATION DATE:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  MODIFICATION HISTORY:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*--"
end define

197.8Fixed a bug...BTOVT::ISLACROIXWed Sep 11 1991 18:102867
! 
!     Facility:
!
!	  BTO 
!  
!     Abstract:
!
!	  This module contains the LSE template for the IBI FOCUS reporting
!	  environment. It was created using the VAX/VMS FOCUS Users Manual,
!	  Volume I and II (release 5.2), and the Subroutine Library Users
!	  Manual.
!
!     Scope:
!   
!	  This template covers chapter 2 (reporting), chapter 12 (user aides),
!	  chapter 6 (dialog manager), part of chapter 15 (FOCUS in a VMS
!	  environment), and all of the functions described in the Subroutine
!	  Library Users Manual.
!  
!     Author:
!
!	  John L. LaCroix, Jr.
!  
!     Creation Date:
!
!	  July 25, 1991   
!  
!     Modification History:
!
!		11-Sep-1991     JLL     Fixed a bug in the block file include
!				        placeholder. The placeholder 'filespec'
!					was not defined.
!	V1.0	30-Aug-1991     JLL     Added Dialog Manager commands from
!					chapter 6, and the FILEDEF command
!					from chapter 15.
!		29-Aug-1991     JLL     Coded arithmetic & alphanumeric 
!					operator menus, and coded the following
!					functions and commands: EDIT, DECODE,
!					LAST, ROW-TOTAL, COLUMN-TOTAL, HEADING,
!					FOOTING, MATCH, TABLEF, RETYPE, ONLINE
!					and OFFLINE commands. That does it for
!					chapter 2.
!		27-Aug-1991     JLL     Finished COMPUTE and DEFINE definitions
!					and coded TABLE request block.
!	        26-Aug-1991     JLL     Coded WITHIN clause for SUM verb
!				        requests, and started COMPUTE and
!					DEFINE definitions.
!	        23-Aug-1991     JLL     Coded IF clause for record selection.
!					Also added verb field prefix operators.
!		21-Aug-1991     JLL     Coded field format selections, completed
!				        work on table BY and ACROSS phrasing.
!	        20-Aug-1991     JLL     Coded PRINT, LIST, ADD, WRITE, SUM,
!					COUNT, SUM., CNT., SEG., and SEGMENT
!					verb and adverb tokens.
!	        19-Aug-1991     JLL     Finished ON TABLE verb clauses.
!		14-Aug-1991     JLL	Coded the ON verb clause, still have
!					to finish the ON TABLE clauses.
!		13-Aug-1991     JLL     Coded the CHECK and XFER commands.
!	        12-Aug-1991     JLL     Coded the LET and JOIN commands.
!	        09-Aug-1991     JLL     Coded the SET command.
!	      	07-Aug-1991	JLL	Finished adding all of the functions
!				        in the subroutine library reference.
!	  V0.0	23-Aug-1991	JLL	(Initial)
!

!
!   Language definition:
!  

define language FOCUS -
    /file_types = (.FEX) -
    /identifier_characters = -
    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890$_" -
    /punctuation_characters = ".(),'':*+-/" -
    /opt = ("[","]") -
    /optl = ("[","]...") -
    /req = ("{","}") -
    /reql = ("{","}...") -
    /initial_string = "[focexec template]..." -
    /tab_increment = 1 -
    /comment = (trailing = "-*") -
    /noquoted_item

!
!   Token definitions
!

!   A tokens

define token "ABS" -
    /language = FOCUS -
    /description = "Return the absolute value"
    "ABS ({argument})"
end define

define token "ACROSS" -
	/language = FOCUS -
	/description = "action verb for sorting report rows in TABLE requests"
        "{across_phrase}..."
end define

define token "ADD" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "ADD {field(s)}..."
end define

define token "ARGLEN" -
    /language = FOCUS -
    /description = "Measure character string length, excluding trailing blanks"
    "ARGLEN ({inlength}, {infield}, {outfield})"
end define

define token "ATODBL" -
    /language = FOCUS -
    /description = "Converts a number from alphanumeric to double precision"
    "ATODBL ({number}, {inlength}, {outfield})"
end define

define token "AYM" -
    /language = FOCUS -
    /description = "Adds and subtracts months from dates"
    "AYM ({year-month}, {months}, {outfield})"
end define

define token "AYMD" -
    /language = FOCUS -
    /description = "Adds and subtracts days from dates"
    "AYMD ({year-month-day}, {days}, {outfield})"
end define

!   B tokens

define token "BAR" -
    /language = FOCUS -
    /description = "Produce horizontal bar charts in table reports"
    "BAR ({barlength}, {infield}, {maxvalue}, {char}, {outfield})"
end define

define token "BITSON" -
    /language = FOCUS -
    /description = "Evaluates individual bits within character strings"
    "BITSON ({bitnumber}, {infield}, {outfield})"
end define

define token "BITVAL" -
    /language = FOCUS -
    /description = "Evaluates strings of bits within character strings"
    "BITVAL ({infield}, {startbit}, {number}, {outfield})"
end define

define token "BY" -
	/language = FOCUS -
	/description = "action verb for sorting report rows in TABLE requests"
        "{by_phrase}..."
end define

define token "BYTVAL" -
    /language = FOCUS -
    /description = "Translates characters into ASCII codes that represent them"
    "BYTVAL ({character}, {outfield})"
end define

!   C tokens

define token "CHECK" -
    /language = FOCUS -
    /description = "Validates FOCUS master file descriptions"
    "CHECK FILE {filename} [PICTURE] [HOLD] [RETRIEVE]"
end define

define token "CHGDAT" -
    /language = FOCUS -
    /description = "Rearrange the year, month and day portions of a date"
    "CHGDAT ({oldformat}, {newformat}, {indate}, {outfield})"
end define

define token "CHKFMT" -
    /language = FOCUS -
    /description = "Compare number of characters in a string to a mask"
    "CHKFMT ({numchar}, {infield}, '{mask}...', {outfield})"
end define

define token "CHKPCK" -
    /language = FOCUS -
    /description = "Validate packed fields"
    "CHKPCK ({inlength}, {infield}, {error}, {outfield})"
end define

define token "COLUMN-TOTAL" -
    /language = FOCUS -
    /description = "TABLE request keyword for producing a column total"
    "[AND] COLUMN-TOTAL"
end define

define token "COUNT" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "COUNT {field(s)}..."
end define

define token "CRTFORM" -
    /language = FOCUS -
    /description = "invoke FIDEL and create a visual form"
    "[-]CRTFORM [option]..."
    "[screen_element]..."
end define

define token "CTRAN" -
    /language = FOCUS -
    /description = "Convert a character in a string to another character"
    "CTRAN ({inlength}, {infield}, {incode}, {outcode}, {outfield})"
end define

define token "CTRFLD" -
    /language = FOCUS -
    /description = "Centers a character string within a field"
    "CTRFLD ({infield}, {inlength}, {outfield})" 
end define

define token "CVTSTIME" -
    /language = FOCUS -
    /description = "Converts a 64-bit date/time field into a character string"
    "CVTSTIME ({number}, {infield}, {outfield})"
end define

!   D tokens

define token "DADMY" -
    /language = FOCUS -
    /description = "Converts from day-month-year to days elapsed this century"
    "DADMY ({indate}, {outfield})"
end define

define token "DADYM" -
    /language = FOCUS -
    /description = "Converts from day-year-month to days elapsed this century"
    "DADYM ({indate}, {outfield})"
end define

define token "DAMDY" -
    /language = FOCUS -
    /description = "Converts from month-day-year to days elapsed this century"
    "DAMDY ({indate}, {outfield})"
end define

define token "DAMYD" -
    /language = FOCUS -
    /description = "Converts from month-year-day to days elapsed this century"
    "DAMYD ({indate}, {outfield})"
end define

define token "DAYDM" -
    /language = FOCUS -
    /description = "Converts from year-day-month to days elapsed this century"
    "DAYDM ({indate}, {outfield})"
end define

define token "DAYMD" -
    /language = FOCUS -
    /description = "Converts from year-month-day to days elapsed this century"
    "DAYMD ({indate}, {outfield})"
end define

define token "DECODE" -
    /language = FOCUS -
    /description = "Command for decoding database fields"
    "DECODE {source} ({select_expression} [ELSE default])"
end define

define token "DEFAULTS" -
    /language = FOCUS -
    /description = "Set initial values for variable substitution"
    "-DEFAULT {name_value}..."
end define

define token "DEFINE" -
    /language = FOCUS -
    /description = "DEFINE verb request block"
    "{define_block}..."
end define

define token "DMOD" -
    /language = FOCUS -
    /description = "Return division remainder as a double-precision number"
    "DMOD ({dividend}, {divisor}, {outfield})"
end define

define token "DOWK" -
    /language = FOCUS -
    /description = "Finds the day of week (SUN thru SAT) of dates"      
    "DOWK ({indate}, {outfield})"
end define

define token "DOWKL" -
    /language = FOCUS -
    /description = "Finds the day of week (SUNDAY thru SATURDAY) of dates"      
    "DOWKL ({indate}, {outfield})"
end define

define token "DTDMY" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to day-month-year format"
    "DTDMY ({number}, {outfield})"
end define

define token "DTDYM" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to day-year-month format"
    "DTDYM ({number}, {outfield})"
end define

define token "DTMDY" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to month-day-year format"
    "DTMDY ({number}, {outfield})"
end define

define token "DTMYD" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to month-year-day format"
    "DTMYD ({number}, {outfield})"
end define

define token "DTYDM" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to year-day-month format"
    "DTYDM ({number}, {outfield})"
end define

define token "DTYMD" -
    /language = FOCUS -
    /description = "Converts days elapsed this century to year-month-day format"
    "DTYMD ({number}, {outfield})"
end define

!   E tokens

define token "EDIT" -
    /language = FOCUS -
    /description = "Function used to edit database fields"
    "EDIT({fieldname}[, 'mask'])"
end define

define token "EXIT" -
    /language = FOCUS -
    /description = "execute stacked FOCUS commands and exit"
    "-EXIT"
end define

define token "EXP" -
    /language = FOCUS -
    /description = "Raises 'e' (approximately 2.72) to a specified power"
    "EXP ({power}, {outfield})"
end define

!   F tokens

define token "FILEDEF" -
    /language = FOCUS -
    /description = "Define an external file for read(s) and/or write(s)"
    "FILEDEF {ddname} {device} {filename} [APPEND] [LOWER] [LRECL n] [RECFM F]"
end define

define token "FMOD" -
    /language = FOCUS -
    /description = "Return division remainder as a floating-point number"  
    "FMOD ({dividend}, {divisor}, {outfield})" 
end define

define token "FOOTING" -
    /language = FOCUS -
    /description = "adds a footing to each page of a TABLE report request"
    "FOOTING [CENTER] [BOTTOM]"
    "{text}"
end define

define token "FTOA" -
    /language = FOCUS -
    /description = "Convert numbers from numeric to alphanumeric format"  
    "FTOA ({number}, '({format})', {outfield})" 
end define

!   G tokens

define token "GETTOK" -
    /language = FOCUS -
    /description = "Return a substring from a character string"
    "GETTOK ({infield}, {inlen}, {toknum}, {delimiter}, {outlen}, {outfield})"
end define

define token "GETUSER" -
    /language = FOCUS -
    /description = "Retrieves the user ID (interactive) or jobname (batch)"
    "GETUSER ({outfield})"
end define

define token "GETSTIME" -
    /language = FOCUS -
    /description = "Puts the system's date and time into an 8-character string"
    "GETSTIME ({outfield})"
end define

define token "GOTO" -
    /language = FOCUS -
    /description = "Branch to user specified label"
    "-GOTO {label}" 
end define

define token "GREGDT" -
    /language = FOCUS -
    /description = "Converts year-day format (Julian) to year-month-day format"
    "GREGDT ({indate}, {outfield})" 
end define

!   H tokens

define token "HEADING" -
    /language = FOCUS -
    /description = "Creates a heading for TABLE report requests"
    "HEADING [CENTER]"
    "{text}"
end define

define token "HEXBYT" -
    /language = FOCUS -
    /description = "Translates integers between 0 and 255 to ASCII characters"
    "HEXBYT ({number}, {outfield})"
end define

define token "HHMMSS" -
    /language = FOCUS -
    /description = "Retrieve the current time from the system"
    "HHMMSS ({outfield})"
end define

!   I tokens

define token "IF" -
    /language = FOCUS -
    /description = "Record selection syntax"
    "{if_statement}..."
end define

define token "-IF" -
    /language = FOCUS -
    /description = "Record selection syntax (Dialog Manager)"
    "-IF {expression} [THEN] GOTO {label} [ELSE GOTO label];"
end define

define token "IMOD" -
    /language = FOCUS -
    /description = "Return division remainder as an integer"
    "IMOD ({dividend}, {divisor}, {outfield})" 
end define

define token "INCLUDE" -
    /language = FOCUS -
    /description = "Inline inclusion of another FOCEXEC"
    "-INCLUDE {filename}" 
end define

define token "INT" -
    /language = FOCUS -
    /description = "Return the integer part"
    "INT ({argument})"
end define

define token "ILOCAS" -
    /language = FOCUS -
    /description = "Replace lower case characters to specified equivalents"
    "ILOCAS ({cstring}, {inlength}, {infield}, {outfield})" 
end define

define token "ITOZ" -
    /language = FOCUS -
    /description = "Converts numbers in numeric format to zoned format"
    "ITOZ ({outlength}, {number}, {outfield})" 
end define

define token "IUPCAS" -
    /language = FOCUS -
    /description = "Replace upper case characters to specified equivalents"
    "IUPCAS ({cstring}, {inlength}, {infield}, {outfield})" 
end define

!   J tokens

define token "JOIN" -
    /language = FOCUS -
    /description = "Singe request reporting from multiple related databases"
    "JOIN {structure_or_clear}"
end define

define token "JULDAT" -
    /language = FOCUS -
    /description = "Converts year-month-date format to year-day (Julian) format"
    "JULDAT ({indate}, {outfield})" 
end define

!   K tokens

!   L tokens

define token "LAST" -
    /language = FOCUS -
    /description = "Obtains the preceding value for a field"
    "LAST {fieldname}" 
end define

define token "LET" -
    /language = FOCUS -
    /description = "Define words to represent other words and phrases"
    "{let_statement_or_block}" 
end define

define token "LIST" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "LIST {field(s)}..."
end define

define token "LJUST" -
    /language = FOCUS -
    /description = "Left-justifies a character string within a field"
    "LJUST ({inlength}, {infield}, {outfield})" 
end define

define token "LOCASE" -
    /language = FOCUS -
    /description = "Convert alphanumeric field values to lower case"
    "LOCASE ({inlength}, {infield}, {outfield})"
end define

define token "LOG" -
    /language = FOCUS -
    /description = "Return the base e logarithm"
    "LOG ({argument})"
end define

!   M tokens

define token "MATCH" -
    /language = FOCUS -
    /description = "MATCH request command"
    "{match_block}..."
end define

define token "MAX" -
    /language = FOCUS -
    /description = "Return the maximum value"
    "MAX ({argument}...)"
end define

define token "MIN" -
    /language = FOCUS -
    /description = "Return the minimum value"
    "MIN ({argument}...)"
end define

define token "MXCASE" -
    /language = FOCUS -
    /description = "First alpha character in fields converted to uppercase"
    "MXCASE ({inlength}, {infield}, {outfield})"
end define

!   N tokens

!   O tokens

define token "ON" -
    /language = FOCUS -
    /description = "Action verb for TABLE and MATCH requests"
    "ON {on_phrase}"
end define

define token "ONLINE" -
    /language = FOCUS -
    /description = "set report destination to the terminal"
    "ONLINE"
end define

define token "OFFLINE" -
    /language = FOCUS -
    /description = "set report destination to a defined non-terminal device"
    "OFFLINE"
end define

define token "OVRLAY" -
    /language = FOCUS -
    /description = "Overlay a substring on another character string"
    "OVRLAY ({base}, {baselen}, {substring}, {sublen}, {position}, {outfield})"
end define

!   P tokens

define token "PARAG" -
    /language = FOCUS -
    /description = "Partition lines of text into smaller lines"
    "PARAG ({inlength}, {infield}, {delimiter}, {subsize}, {outfield})"
end define

define token "PCKOUT" -
    /language = FOCUS -
    /description = "Vary packed numbers of different lengths to extract files"
    "PCKOUT ({infield}, {outlength}, {outfield})"
end define

define token "PRINT" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "PRINT {field(s)}..."
end define

define token "PROMPT" -
    /language = FOCUS -
    /description = "solicit values to assign to variables"
    "-PROMPT {variable}"
end define

define token "POSIT" -
    /language = FOCUS -
    /description = "Get substring starting positions within larger strings"
    "POSIT ({parent}, {inlength}, {substring}, {sublength}, {outfield})"
end define

define token "PRDNOR" -
    /language = FOCUS -
    /description = "Create random numbers dist. normally with 0 mean & s.d. 1" 
    "PRDNOR ({seed}, {outfield})"
end define

define token "PRDUNI" -
    /language = FOCUS -
    /description = "Create reproducible sets of uniformly dist. random numbers"
    "PRDUNI ({seed}, {outfield})"
end define

!   Q tokens

define token "QUIT" -
    /language = FOCUS -
    /description = "cancel execution and exit immediately"
    "-QUIT [FOCUS n]" 
end define

!   R tokens

define token "READ" -
    /language = FOCUS -
    /description = "Read values from a sequential file"
    "-READ {filename}[,] {variable,}..." 
end define

define token "RETYPE" -
    /language = FOCUS -
    /description = "Redisplay report"
    "RETYPE" 
end define

define token "RDNORM" -
    /language = FOCUS -
    /description = "Create random numbers, dist. normally with 0 mean & s.d. 1"
    "RDNORM ({outfield})" 
end define

define token "RDUNIF" -
    /language = FOCUS -
    /description = "Create uniformly distributed random numbers between 0 and 1"
    "RDUNIF ({outfield})" 
end define

define token "RJUST" -
    /language = FOCUS -
    /description = "Right-justifies a character string within a field"
    "RJUST ({inlength}, {infield}, {outfield})" 
end define

define token "ROW-TOTAL" -
    /language = FOCUS -
    /description = "TABLE request keyword for producing a row total"
    "[AND] ROW-TOTAL"
end define

define token "RUN" -
    /language = FOCUS -
    /description = "execute all FOCUS commands in FOCSTACK (Dialog Manager)"
    "-RUN"
end define

!   S tokens

define token "SEGMENT" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "SEGMENT {fieldname}"
end define

define token "SET" -
    /language = FOCUS -
    /description = "Change FOCUS environment parameters"
    "SET {parameter}..."
end define

define token "-SET" -
    /language = FOCUS -
    /description = "Assign values to computed logical or arithmetic expressions"
    "-SET [&]&{name}={expression};"
end define

define token "SOUNDEX" -
    /language = FOCUS -
    /description = "Phonetical search for character strings"
    "SOUNDEX ({inlength}, {string}, {outfield})" 
end define

define token "SUBSTR" -
    /language = FOCUS -
    /description = "Extract substrings, using offsets within a parent string"
    "SUBSTR ({inlength}, {parent}, {start}, {end}, {sublength}, {outfield})"
end define

define token "SUM" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "SUM {field(s)}... [WITHIN]..."
end define

define token "SQRT" -
    /language = FOCUS -
    /description = "Return the square root"
    "SQRT ({argument})"
end define

!   T tokens

define token "TABLE" -
    /language = FOCUS -
    /description = "Report request command"
    "{table_block}..."
end define

define token "TABLEF" -
    /language = FOCUS -
    /description = "Fast report request, without sorting"
    "{tablef_block}..."
end define

define token "TODAY" -
    /language = FOCUS -
    /description = "Retrieve the current date from the system"
    "TODAY ({outfield})"
end define

define token "TYPE" -
    /language = FOCUS -
    /description = "Retrieve the current date from the system"
    "-TYPE[var] {text}"
end define

!   U tokens

define token "UPCASE" -
    /language = FOCUS -
    /description = "Convert alphanumeric field values to upper case"
    "UPCASE ({inlength}, {infield}, {outfield})"
end define

!   V tokens

define token "variable" -
    /language = FOCUS -
    /description = "User defined local or global variable"
    "[&]&{name}[.format.][.(list).][text.]"
end define

define token "VMS" -
    /language = FOCUS -
    /description = "Execute operating system command"
    "-VMS {text}"
end define

!   W tokens

define token "WITHIN" -
    /language = FOCUS -
    /description = "qualifies domain of data fields with BY or ACROSS phrases"
    "WITHIN {domain}"
end define

define token "WRITE" -
    /language = FOCUS -
    /description = "verb for TABLE requests"
    "WRITE {field(s)}..."
end define

define token "-WRITE" -
    /language = FOCUS -
    /description = "Write to an external file"
    "-WRITE {filename} {text}"
end define

!   X tokens

define token "XFER" -
    /language = FOCUS -
    /description = "Download or upload files between a VAX and a microcomputer"
    "XFER {ddname} TO {d}:{fn}.{ext}"
end define

!   Y tokens

define token "YM" -
    /language = FOCUS -
    /description = "Finds the number of months between two dates"
    "YM ({fromdate}, {todate}, {outfield})"
end define

!   Z tokens

!
!    Placeholder definitions:
!

!   A placeholders

define placeholder "-" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "-"
end define

define placeholder "," -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    ","
end define

define placeholder "&" -
    /language = FOCUS -
    /description = "Used to define variables in Dialog Manager" -
    /type = NONTERMINAL
    "&"
end define

define placeholder "across_phrase" -
    /language = FOCUS -
    /description = "verb phrase to sort TABLE request report rows" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "ACROSS [RANK] {fieldname} [in-groups-of] [across_columns_and_phrase]"
end define

define placeholder "across_columns_and_phrase" -
    /language = FOCUS -
    /description = "phrase for ACROSS verb in TABLE requests" -
    /type = NONTERMINAL
    "COLUMNS {value} {AND value}..."
end define

define placeholder "action" -
    /language = FOCUS -
    /description = "Extent of JOIN structure" -
    /type = TERMINAL
    "Action to be performed"
end define

define placeholder " ADD " -
    /language = FOCUS -
    /description = "Make define GLOBAL, beyond the scope of the current file" -
    /type = NONTERMINAL
    "ADD"
end define

define placeholder "ALL" -
    /language = FOCUS -
    /description = "Extent of JOIN structure" -
    /type = NONTERMINAL
    "ALL"
end define

define placeholder "AND" -
    /language = FOCUS -
    /description = "optional verb conjugate" -
    /type = NONTERMINAL
    "AND"
end define

define placeholder "AND compute" -
    /language = FOCUS -
    /description = "optional verb conjugate" -
    /type = NONTERMINAL
    "[AND] {compute_statement}"
end define

define placeholder "AND field1a" -
    /language = FOCUS -
    /description = "Clause to assign a name to the JOIN structure" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "AND {field1a}"
end define

define placeholder "AND value" -
    /language = FOCUS -
    /description = "Alphanumeric output field" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "AND {value}"
end define

define placeholder "APPEND" -
    /language = FOCUS -
    /description = "Adds the records to the end of the file" -
    /type = NONTERMINAL
    "APPEND"
end define

define placeholder "arithmetic_operator" -
    /language = FOCUS -
    /description = "Arithmetic operators for use with DEFINE & COMPUTE verbs" -
    /type = MENU
    "+"	    /DESCRIPTION = "addition"
    "-"	    /DESCRIPTION = "subtraction"
    "*"	    /DESCRIPTION = "multiplication"
    "/"	    /DESCRIPTION = "division"
    "**"    /DESCRIPTION = "exponentiation"
end define

define placeholder "AS filename" -
    /language = FOCUS -
    /description = "Name to give the extract file" -
    /type = NONTERMINAL
    "AS {filename}"
end define

define placeholder "AS d:filename" -
    /language = FOCUS -
    /description = "Name to give the extract file" -
    /type = NONTERMINAL
    "AS {d:filename}"
end define

define placeholder "AS joinname" -
    /language = FOCUS -
    /description = "Clause to assign a name to the JOIN structure" -
    /type = NONTERMINAL
    "AS {joinname}"
end define

define placeholder "AS 'name'" -
    /language = FOCUS -
    /description = "Name of the extract file created by the MATCH command" -
    /type = NONTERMINAL
    "AS '{text}'"
end define

define placeholder "AS 'text'" -
    /language = FOCUS -
    /description = "Substitute a label for the fieldname" -
    /type = NONTERMINAL
    "AS '{text}'"
end define

define placeholder "AS 'title'" -
    /language = FOCUS -
    /description = "Changes the title for the computed fields" -
    /type = NONTERMINAL
    "AS '{text}'"
end define

define placeholder "argument" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "A fieldname, expression, or another function"
end define

!   B placeholders

define placeholder "barlength" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The maximum length of the bar in characters"
end define

define placeholder "base" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Character string to be overlaid"
end define

define placeholder "baselen" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the base and output strings"
end define

define placeholder "bitnumber" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of the bit to be evaluated, counting from the leftmost bit"
end define

define placeholder "BOTTOM" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "BOTTOM"
end define

define placeholder "by_phrase" -
    /language = FOCUS -
    /description = "verb phrase to sort TABLE request report rows" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "BY [RANK] {fieldname} [in-groups-of] [by_rows_over_phrase]"
end define

define placeholder "by_rows_over_phrase" -
    /language = FOCUS -
    /description = "phrase for BY verb in TABLE requests" -
    /type = NONTERMINAL
    "ROWS {value} {OVER value}..."
end define

define placeholder "by_statement" -
    /language = FOCUS -
    /description = "verb phrase to sort TABLE request report rows" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{by_phrase}"
end define

!   C placeholders

define placeholder "case" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Label of the case to branch to"
end define

define placeholder "casename" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Label of the case execute & return from"
end define

define placeholder "CENTER" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "CENTER"
end define

define placeholder "char" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The repeating character to make up the bars"
end define

define placeholder "character" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The input character"
end define

define placeholder "CLEAR" -
    /language = FOCUS -
    /description = "Clear GLOBAL defines" -
    /type = NONTERMINAL
    "CLEAR"
end define

define placeholder "code" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter a code to test against the selected field"
end define

define placeholder "code result" -
    /language = FOCUS -
    /description = "Explicitly defined DECODE pair" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL 
    "{code} {result}"
end define

define placeholder "color" -
    /language = FOCUS -
    /description = "Available video display colors" -
    /type = MENU
    "AQUA"
    "AQUA-MEDIUM"
    "BLACK"
    "BLUE"
    "BLUE-CADET"
    "BLUE-CORNFLOWER"
    "BLUE-DARK_SLATE"
    "BLUE-LIGHT"
    "BLUE-LIGHT_STEEL"
    "BLUE-MEDIUM"
    "BLUE-MEDIUM_SLATE"
    "BLUE-MIDNIGHT"
    "BLUE-NAVY"
    "BLUE-SKY"
    "BLUE-SLATE"
    "BLUE-STEEL"
    "CORAL"
    "CYAN"
    "FIREBRICK"
    "GOLD"
    "GOLDENROD"
    "GOLDENROD-MEDIUM"
    "GREEN"
    "GREEN-DARK"
    "GREEN-DARK_OLIVE"
    "GREEN-FOREST"
    "GREEN-LIME"
    "GREEN-MEDIUM_FOREST"
    "GREEN-MEDIUM_SEA"
    "GREEN-MEDIUM_SPRING"
    "GREEN-PALE"
    "GREEN-SEA"
    "GREEN-SPRING"
    "GREEN-YELLOW"
    "GRAY-DARK_SLATE"
    "GRAY-DIM"
    "GRAY-LIGHT"
    "KHAKI"
    "MAGENTA"
    "MAROON"
    "ORANGE"
    "ORCHID"
    "ORCHID-DARK"
    "ORCHID-MEDIUM"
    "PINK"
    "PLUM"
    "RED"
    "RED-INDIAN"
    "RED-MEDIUM_VIOLET"
    "RED-ORANGE"
    "RED-VIOLET"
    "SALMON"
    "SIENNA"
    "TAN"
    "THISTLE"
    "TURQUOISE"
    "TURQUOISE-DARK"
    "TURQUOISE-MEDIUM"
    "VIOLET"
    "VIOLET-BLUE"
    "WHEAT"
    "WHITE"
    "YELLOW"
    "YELLOW-GREEN"
end define

define placeholder "alphanumeric_operator" -
    /language = FOCUS -
    /description = "Operators for use with DEFINE & COMPUTE verbs" -
    /type = MENU
    "||"    /DESCRIPTION = "strong concantenation, suppresses trailing blanks"
    "|"	    /DESCRIPTION = "weak concantenation, preserves field lengths"
end define

define placeholder "compute_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname1} COMPUTE {fieldname2}[/format] = {expression}"
end define

define placeholder "compute_statement" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /type = NONTERMINAL
    "COMPUTE {compute_phrase}..."
end define

define placeholder "compute_phrase" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{fieldname}[/format] = {expression} ; [NOPRINT] [IN n] [AS 'title']"
end define

define placeholder "crfile" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The name of the cross-referenced file"
end define

define placeholder "cstring" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Single quoted string or fieldname containing conversion characters"
end define

!   D placeholders

define placeholder "d" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Disk destination on the microcomputer for the file"
end define

define placeholder "days" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of days to add (positive) or subtract (negative)"
end define

define placeholder "ddname" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Named file in a FILEDEF statement designating an existing VAX file"
end define

define placeholder "define_expression" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{fieldname}[/format] [WITH realfield] = {expression} ;"
end define

define placeholder "delimiter" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "An alphanumeric character"
end define

define placeholder "dest" -
    /language = FOCUS -
    /description = "Report output destination" -
    /type = MENU
    "LOCAL"	/DESCRIPTION = "locally attached serial printer"
    "ONLINE"	/DESCRIPTION = "the terminal"
    "OFFLINE"	/DESCRIPTION = "the system printer"
end define

define placeholder "device" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Device where the file is stored: DISK, TERM (keyboard), or PRINTER"
end define

define placeholder "dir" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Valid VMS directory"
end define

define placeholder "dividend" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The dividend"
end define

define placeholder "divisor" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The divisor"
end define

define placeholder "domain" -
    /language = FOCUS -
    /description = "Report output destination" -
    /type = MENU
    "{fieldname}"   /DESCRIPTION = "obtain summary data qualified by a field"
    "TABLE"	    /DESCRIPTION = "obtain summary data for the entire retrieval"
end define

define placeholder "d:filename" -
    /language = FOCUS -
    /description = "Data file" -
    /type = TERMINAL
    "Filename and microcomputer drive (A,B,C..) for the extract file"
end define

!   E placeholders

define placeholder "ELSE default" -
    /language = FOCUS -
    /description = "Default action for DECODE statement" -
    /type = NONTERMINAL
    "ELSE {expression}"
end define

define placeholder "ELSE GOTO label" -
    /language = FOCUS -
    /description = "Default action for Dialog Manager IF control statement" -
    /type = NONTERMINAL
    "ELSE GOTO {label}"
end define

define placeholder "end" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Ending position of the substring within the parent string"
end define

define placeholder "error" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Error code to be returned if a value is not packed"
end define

define placeholder "equate_phrase" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /duplication = HORIZONTAL -
    /separator = "; " -
    /type = NONTERMINAL
    "{word} = {phrase}"
end define

define placeholder "equate_phrase(s)" -
    /language = FOCUS -
    /description = "Alpha input expression" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{equate_phrase}"
end define

define placeholder "ext" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Microcomputer filename extension"
end define

define placeholder "expression" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "A logical or mathematical expression resulting in a condition"
end define

!   F placeholders

define placeholder "field(s)" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = " AND " -
    /type = NONTERMINAL
    "[prefix]{fieldname}"
end define

define placeholder "field1" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Hostfile fieldname containing values to share with a cross-referenced file"
end define

define placeholder "field1a" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Subordinate alphanumeric fields to share with the cross-referenced file"
end define

define placeholder "field2" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Name of the field in the cross-referenced file containing values in field1"
end define

define placeholder "fieldname" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Name of a field in the active file"
end define

define placeholder "fieldname1" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Name of a field in the active file"
end define

define placeholder "fieldname2" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "New field equal to the expression"
end define

define placeholder "fieldname/format" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "{fieldname}[/format]"
end define

define placeholder "filename" -
    /language = FOCUS -
    /description = "Data file" -
    /type = TERMINAL
    "A valid external or FOCUS data file, an extract file, or a JOIN structure"
end define

define placeholder "FILE filename" -
    /language = FOCUS -
    /description = "file request for MATCH request" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "FILE {filename}"
    "{verb_statement}"
    "[if_statement]..."
    "[by_statement]..."
    "AFTER MATCH HOLD [AS 'name'] [relational_operator]"
end define

define placeholder "FOCUS n" -
    /language = FOCUS -
    /description = "QUIT command option to exit FOCUS environment" -
    /type = NONTERMINAL
    "FOCUS {n}"
end define

define placeholder "for_phrase" -
    /language = FOCUS -
    /description = "verb phrase to sort TABLE request report rows" -
    /type = NONTERMINAL
    "FOR {fieldname} {value} {OVER value}..."
end define

define placeholder "fn" -
    /language = FOCUS -
    /description = "Alpha input file" -
    /type = TERMINAL
    "Name for the file on the microcomputer"
end define

define placeholder "fromdate" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The starting date in year-month format"
end define

define placeholder "fold-line_clause" -
    /language = FOCUS -
    /description = "ON or BY command option" -
    /type = NONTERMINAL
    "{fieldname} FOLD-LINE"
end define

define placeholder "form" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "BINARY"	/DESCRIPTION = "data in HOLD files in BINARY format"
    "ALPHA"	/DESCRIPTION = "data in HOLD files in ALPHA format"
end define

define placeholder "/format" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "/{format}"
end define

define placeholder "format" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "I{n}[opt]..."	/DESCRIPTION = "Integer format, 1<n<9"
    "D{n}[.n][opt]..."	/DESCRIPTION = "Decimal format, 1<n<15"
    "P{n}[.n][opt]..."	/DESCRIPTION = "Packed decimal, 1<n<15"
    "F{n}[.n][opt]..."	/DESCRIPTION = "Floating point, 1<n<9"
    "A{n}"		/DESCRIPTION = "Alphanumeric data, 1<n<256"
end define

define placeholder ".format." -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    ".{format}."
end define

define placeholder " FORMAT " -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "DIF"	/DESCRIPTION = "Spreadsheet program compatible output format" 
    "WP"	/DESCRIPTION = "Word-processing program compatible format" 
    "LOTUS"	/DESCRIPTION = "LOTUS spreadsheet compatible format"
    "CALC"	/DESCRIPTION = "FOCUS spreadsheet program (HOLD files only)"
    "BINARY"	/DESCRIPTION = "Internal binary format (HOLD files only)"
end define

!   G placeholders

!   H placeholders

define placeholder "HOLD" -
    /language = FOCUS -
    /description = "CHECK command option" -
    /type = NONTERMINAL
    "HOLD"
end define

define placeholder "hold_phrase" -
    /language = FOCUS -
    /description = "HOLD command options" -
    /type = NONTERMINAL
    "HOLD [AS filename] [ FORMAT ] [ MISSING ]"
end define

define placeholder "hold_or_save_or_total" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "{hold_phrase}"	/DESCRIPTION = "create extract file and master"
    "{pchold_phrase}"	/DESCRIPTION = "for microcomputer file transfers"
    "{savb_phrase}"	/DESCRIPTION = "data extracted in binary format"
    "{save_phrase}"	/DESCRIPTION = "data extracted to a file"
    "COLUMN-TOTAL"	/DESCRIPTION = "calculate column totals"
    "ROW-TOTAL"		/DESCRIPTION = "calculate row totals"
end define

define placeholder "hostfile" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The name of the host file"
end define

!   I placeholders

define placeholder "if_statement" -
    /language = FOCUS -
    /description = "verb clause for record screening in TABLE requests" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "IF {selection_phrase}"
end define

define placeholder "IN n" -
    /language = FOCUS -
    /description = "Specifies column locations" -
    /type = TERMINAL
    "IN {n}"
end define

define placeholder "incode" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The decimal equivalent of the character to be converted"
end define

define placeholder "indate" -
    /language = FOCUS -
    /description = "Alphanumeric input field" -
    /type = TERMINAL
    "The input date"
end define

define placeholder "inlength" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the input field"
end define

define placeholder "inlen" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the input field containing the character string"
end define

define placeholder "infield" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Alphanumeric input field"
end define

define placeholder "invalid_phrase" -
    /language = FOCUS -
    /description = "ON command option" -
    /type = NONTERMINAL
    "INVALID {invalid_clause}"
end define

define placeholder "invalid_clause" -
    /language = FOCUS -
    /description = "ON INVALID clauses" -
    /type = MENU
    "GOTO {case}"		    /DESCRIPTION = "unconditional branch"
    "IF {expression} GOTO {case}"   /DESCRIPTION = "conditional branch"
    "TYPE [ON ddname]"		    /DESCRIPTION = "display a terminal message"
    "PERFORM {casename}"	    /DESCRIPTION = "execute routine & continue"
end define

define placeholder "in-groups-of" -
    /language = FOCUS -
    /description = "option for ACROSS or BY verbs" -
    /type = NONTERMINAL
    "IN-GROUPS-OF {value} TOP {limit}"
end define

!   J placeholders

define placeholder "joinname" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Name assigned to the JOIN structure, up to 8 characters in length"
end define

define placeholder "join_structure" -
    /language = FOCUS -
    /description = "Format of the JOIN command" -
    /type = NONTERMINAL
    "{field1} [AND field1a]... IN {hostfile} TO [ALL] {field2} IN {crfile} [AS joinname]" 
end define

!   K placeholders

define placeholder "/key" -
    /language = FOCUS -
    /description = "record selection using group key" -
    /type = NONTERMINAL
    "/{text}"
end define

!   L placeholders

define placeholder "label" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter text for label"
end define

define placeholder "let_statement_or_block" -
    /language = FOCUS -
    /description = "LET command options" -
    /type = MENU
    "LET CLEAR {word}..."    /DESCRIPTION = "command to clear LET substitutions"
    "LET SAVE [filename]"    /DESCRIPTION = "substitutions saved in a file"
    "LET {equate_phrase}..." /DESCRIPTION = "assign word substitutions"
    "{let_block}..."	     /DESCRIPTION = "long form of the LET command"
end define

define placeholder "limit" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = TERMINAL
    "limit for the number of results to be grouped"
end define

define placeholder "list" -
    /language = FOCUS -
    /description = "one of a set of responses" -
    /duplication = HORIZONTAL -
    /separator = ", " -
    /type = NONTERMINAL
    "{list}"
end define

define placeholder ".(list)." -
    /language = FOCUS -
    /description = "set of allowed responses" -
    /type = NONTERMINAL
    ".({list}...)."
end define

define placeholder "literal" -
    /language = FOCUS -
    /description = "expression to test IF relations" -
    /duplication = HORIZONTAL -
    /separator = " OR " -
    /type = MENU
    "{text}"	    /DESCRIPTION = "Alphanumeric or numeric value"    
    "{text}[/key]"  /DESCRIPTION = "record selection using group key"    
    "'{text}'"	    /DESCRIPTION = "literal containing embedded space or spaces"
    "MISSING"	    /DESCRIPTION = "identifies fields where data is missing"
end define

define placeholder "LOWER" -
    /language = FOCUS -
    /description = "Accepts lowercase letters from the keyboard" -
    /type = NONTERMINAL
    "LOWER"
end define

define placeholder "LRECL n" -
    /language = FOCUS -
    /description = "Specifies the record limit (maximum n=256)" -
    /type = NONTERMINAL
    "LRECL {n}"
end define

!   M placeholders

define placeholder "mask" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = "" -
    /type = MENU
    "A"	    /DESCRIPTION = "letters A-Z (upper or lower case)"
    "9"	    /DESCRIPTION = "digits 0-9"
    "X"	    /DESCRIPTION = "letters A-Z or digits 0-9"
    "$"	    /DESCRIPTION = "any character"
end define

define placeholder "match_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "MATCH {action}"
end define

define placeholder "matchnomatch_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "MATCH/NOMATCH {action}"
end define

define placeholder "maxvalue" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The value of the bar at maximum length"
end define

define placeholder "missing" -
    /language = FOCUS -
    /description = "type of report missing segment handling" -
    /type = MENU
    "OFF"   /DESCRIPTION = "records with missing segment instances don't appear"
    "ON"    /DESCRIPTION = "instances appear, unless screened by IF clause"
    "PASS"  /DESCRIPTION = "instances appear regardless of IF screening"
end define

define placeholder " MISSING " -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "MISSING {switch}"
end define

define placeholder "months" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of months to add (positive) or subtract (negative)"
end define

define placeholder "MULTILINES" -
    /language = FOCUS -
    /description = "Suppress action for single-line results" -
    /type = NONTERMINAL
    "MULTILINES"
end define

define placeholder ", 'mask'" -
    /language = FOCUS -
    /description = "Optional mask used for EDIT of database fields" -
    /type = NONTERMINAL
    ", '{mask}...'"
end define

!   N placeholders

define placeholder "n" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Enter a number"
end define

define placeholder ".n" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = NONTERMINAL
    ".{n}"
end define

define placeholder "name" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter a name for the variable"
end define

define placeholder "name_value" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = ", " -
    /type = NONTERMINAL
    "[&]&{name}={value}"
end define

define placeholder "newformat" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The format of the converted date"
end define

define placeholder "next_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "NEXT {action}"
end define

define placeholder "nomatch_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "NOMATCH {action}"
end define

define placeholder "nonext_phrase" -
    /language = FOCUS -
    /description = "ON verb option" -
    /type = NONTERMINAL
    "NONEXT {action}"
end define

define placeholder "NOPRINT" -
    /language = FOCUS -
    /description = "Suppresses printing of field" -
    /type = NONTERMINAL
    "NOPRINT"
end define

define placeholder "noprint_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} NOPRINT"
end define

define placeholder "number" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Number or field containing a number"
end define

define placeholder "numchar" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Number of characters to compare against the mask"
end define

!   O placeholders

define placeholder "oldformat" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "The format of the input date"
end define

define placeholder "ON ddname" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "[ON] {ddname}"
end define

define placeholder "on_phrase" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "{invalid_phrase}"	    /DESCRIPTION = "action for invalidated transactions"
    "{match_phrase}"	    /DESCRIPTION = "action if MATCH instances are found"
    "{nomatch_phrase}"	    /DESCRIPTION = "action if MATCH instances not found"
    "{matchnomatch_phrase}" /DESCRIPTION = "action regardless of MATCH outcome"
    "{next_phrase}"	    /DESCRIPTION = "action if there is a NEXT instance"
    "{nonext_phrase}"	    /DESCRIPTION = "action if there no NEXT instance"
    "{table_phrase}"	    /DESCRIPTION = "action phrase for TABLE requests"
end define

define placeholder "on_statement" -
    /language = FOCUS -
    /description = "verb for TABLE requests" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "ON {table_clause}"
end define

define placeholder "opt" -
    /language = FOCUS -
    /description = "Display options for editing field formats" -
    /duplication = HORIZONTAL -
    /separator = "" -
    /type = MENU
    "C"	    /DESCRIPTION = "Comma inclusion"
    "S"	    /DESCRIPTION = "Zero suppression"
    "B"	    /DESCRIPTION = "Bracket negatives"
    "R"	    /DESCRIPTION = "Credit negative"
    "L"	    /DESCRIPTION = "Leading zeros"
    "M"	    /DESCRIPTION = "FLoating dollar"
    "N"	    /DESCRIPTION = "Non-floating dollar"
    "E"	    /DESCRIPTION = "Scientific notation"
    "D"	    /DESCRIPTION = "Date: prints a value from 1 through 31"
    "M"	    /DESCRIPTION = "Month: prints a value from 1 through 12"
    "Y"	    /DESCRIPTION = "2-digit year"
    "YY"    /DESCRIPTION = "4-digit year"
    "T"	    /DESCRIPTION = "Abbreviated month or day: 3 letter uppercase"
    "t"	    /DESCRIPTION = "Abbreviated month or day: 3 letter upper/lowercase"
    "TR"    /DESCRIPTION = "Complete month or day: uppercase"
    "tr"    /DESCRIPTION = "Complete month or day: upper/lowercase"
    "Q"     /DESCRIPTION = "Quarter: interprets and prints quarter(1-4)"
    "W"	    /DESCRIPTION = "Day of week: print number for day of week(1-7)"
    "w"	    /DESCRIPTION = "Abbreviated day of week"
    "J"	    /DESCRIPTION = "Julian format"
end define

define placeholder "option" -
    /language = FOCUS -
    /description = "screen control options" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = MENU
    "UPPER"	/DESCRIPTION = "translate all characters to uppercase"
    "LOWER"	/DESCRIPTION = "leads lowercase data entered from the screen"
    "BEGIN"	/DESCRIPTION = "support use of other control statements"
    "END"	/DESCRIPTION = "signal end for the form"
    "LINE {n}"	/DESCRIPTION = "specify starting line number for the form"
    "NOCLEAR"	/DESCRIPTION = "data values remain after data transmission"
    "CLEAR"	/DESCRIPTION = "data values clear after every data transmission"
    "WIDTH {n}"	/DESCRIPTION = "total number of characters across the screen"
end define

define placeholder "outcode" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The decimal equivalent of the character to be substituted"
end define

define placeholder "outlen" -
    /language = FOCUS -
    /description = "Numeric output field" -
    /type = TERMINAL
    "The maximum size of a token"
end define

define placeholder "outlength" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The length in bytes"
end define

define placeholder "outfield" -
    /language = FOCUS -
    /description = "Alphanumeric output field" -
    /type = TERMINAL
    "Field to contain the result"
end define

define placeholder "OVER value" -
    /language = FOCUS -
    /description = "Alphanumeric output field" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = NONTERMINAL
    "OVER {value}"
end define

!   P placeholders

define placeholder "pad" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = MENU
    "NUMERIC"	    /DESCRIPTION = "right hand keypad is NUMERIC"
    "APPLICATION"   /DESCRIPTION = "right hand keypad is APPLICATION"
end define

define placeholder "PAGE-BREAK AND" -
    /language = FOCUS -
    /description = "Subheading and subfooting command options" -
    /type = NONTERMINAL
    "PAGE-BREAK AND"
end define

define placeholder "page-break_clause" -
    /language = FOCUS -
    /description = "Alphanumeric output field" -
    /type = NONTERMINAL
    "{fieldname} PAGE-BREAK [REPAGE]"
end define

define placeholder "parameter" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = ", " -
    /type = MENU
    "ALL = {missing}"	    /DESCRIPTION = "report missing segments handling"
    "BCOLOR = {color}"	    /DESCRIPTION = "selects display background color"
    "BINS = {n}"	    /DESCRIPTION = "number of 4096 block memory buffers"
    "CDN = {switch}"	    /DESCRIPTION = "continental decimal notation"
    "COLOR = {switch}"	    /DESCRIPTION = "select color or monochrome display"
    "DEFAULT = {dir}"	    /DESCRIPTION = "initial search directory"
    "FILENAME = {filename}" /DESCRIPTION = "default filename for FOCUS commands"
    "FILE = {filename}"	    /DESCRIPTION = "default filename for FOCUS commands"
    "HOLDDEFAULT = {form}"  /DESCRIPTION = "the default HOLD file format"
    "ICOLOR = {color}"	    /DESCRIPTION = "selects intensified text color"
    "KEYPAD = {pad}"	    /DESCRIPTION = "selects keypad type"
    "LINES = {n}"	    /DESCRIPTION = "number of lines per printed page"
    "MESSAGE = {switch}"    /DESCRIPTION = "display informational messages"
    "MSG = {switch}"	    /DESCRIPTION = "display informational messages"
    "MORE = {switch}"	    /DESCRIPTION = "selects screen output pause"
    "NCOLOR = {color}"	    /DESCRIPTION = "selects normal screen text color"
    "NODATA = {string}"	    /DESCRIPTION = "string to represent missing data"
    "NA = {string}"	    /DESCRIPTION = "string to represent missing data"
    "PAGE-NUM = {setting}"  /DESCRIPTION = "selects output page numbering"
    "PAGE = {setting}"	    /DESCRIPTION = "selects outputs page numbering"
    "PANEL = {n}"   	    /DESCRIPTION = "maximum width of a report panel"
    "PAPER = {n}"	    /DESCRIPTION = "physical length of ouput paper"
    "PASS = {password}"	    /DESCRIPTION = "grants access to protected files"
    "PAUSE = {switch}"	    /DESCRIPTION = "pause before displaying reports"
    "PRINT = {dest}"        /DESCRIPTION = "report output destination"
    "PROMPT = {ptype}"      /DESCRIPTION = "selects FOCUS prompt type"
    "RCOLOR = {color}"	    /DESCRIPTION = "selects reverse screen video color"
    "SHADOW = {switch}"	    /DESCRIPTION = "activates absolute file integrity"
    "TEMPDIR = {dir}"	    /DESCRIPTION = "directory to store extract files"
    "TITLE = {switch}"      /DESCRIPTION = "selects pre-defined column titles"
    "USER = {password}"	    /DESCRIPTION = "controls access to protected files"
    "WIDTH = {n}"           /DESCRIPTION = "number of report columns displayed"
end define

define placeholder "parent" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Parent string or field containing the parent string"
end define

define placeholder "password" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "A user entered password"
end define

define placeholder "pchold_phrase" -
    /language = FOCUS -
    /description = "HOLD command options" -
    /type = NONTERMINAL
    "PCHOLD [AS d:filename] [ FORMAT ]"
end define

define placeholder "phrase" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Equivalent string, up to 256 characters in length"
end define

define placeholder "PICTURE" -
    /language = FOCUS -
    /description = "CHECK command option" -
    /type = NONTERMINAL
    "PICTURE"
end define

define placeholder "position" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Position in the base string where the overlay is to begin"
end define

define placeholder "power" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The power that e is being raised to"
end define

define placeholder "prefix" -
    /language = FOCUS -
    /description = "verb field prefixes" -
    /type = MENU
    "AVE."	/DESCRIPTION = "average value of a field"
    "ASQ."	/DESCRIPTION = "average sum of squares (standard deviation)"
    "MAX."	/DESCRIPTION = "maximum field value"
    "MIN."	/DESCRIPTION = "minimum field value"
    "PCT."	/DESCRIPTION = "percentage of total values for a given field"
    "RPCT."	/DESCRIPTION = "percent of a row (ACROSS sort phrase only)"
    "PCT.CNT."  /DESCRIPTION = "relative percentages of all instances found"
    "FST."	/DESCRIPTION = "selects the first record"
    "LST."	/DESCRIPTION = "selects the last record"
    "CNT."	/DESCRIPTION = "count occurrences and summarize"
    "SUM."	/DESCRIPTION = "sum field values"
    "SEG."	/DESCRIPTION = "select the complete segment"
    "TOT."	/DESCRIPTION = "total and put data into headings"
end define

!   Q placeholders

!   R placeholders

define placeholder "RANK" -
    /language = FOCUS -
    /description = "option for BY verb phrase" -
    /type = MENU
    "HIGHEST [n]"   /DESCRIPTION = "Sort from HIGHEST to LOWEST"
    "TOP [n]"	    /DESCRIPTION = "Sort from TOP record"
    "LOWEST [n]"    /DESCRIPTION = "Sort from LOWEST to HIGHEST"
end define

define placeholder "RANKED BY" -
    /language = FOCUS -
    /description = "option for BY verb phrase" -
    /type = NONTERMINAL
    "RANKED BY {RANK} {fieldname}"
end define

define placeholder "readlimit_phrase" -
    /language = FOCUS -
    /description = "limit based on number of successful reads" -
    /type = NONTERMINAL
    "READLIMIT EQ {n}" 
end define

define placeholder "recap_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname1} RECAP {fieldname2}[/format] = {expression}"
end define

define placeholder "recompute_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} RECOMPUTE [AS 'text'] [MULTILINES]"
end define

define placeholder "RECFM F" -
    /language = FOCUS -
    /description = "Specified fixed length records" -
    /type = NONTERMINAL
    "RECFM F"
end define

define placeholder "recordlimit_phrase" -
    /language = FOCUS -
    /description = "limit the number of records retrieved" -
    /type = NONTERMINAL
    "RECORDLIMIT EQ {n}"
end define

define placeholder "relation" -
    /language = FOCUS -
    /description = "Logical relations" -
    /type = MENU
    "EQ"		    /DESCRIPTION = "Equal to"
    "IS"		    /DESCRIPTION = "Equal to"
    "NE"		    /DESCRIPTION = "Not equal to"
    "IS-NOT"		    /DESCRIPTION = "Not equal to
    "GE"		    /DESCRIPTION = "Greater than or equal to"
    "FROM"		    /DESCRIPTION = "Greater than or equal to"
    "IS-FROM"		    /DESCRIPTION = "Greater than or equal to"
    "GT"		    /DESCRIPTION = "Greater than"
    "EXCEEDS"		    /DESCRIPTION = "Greater than"
    "IS-MORE-THAN"	    /DESCRIPTION = "Greater than"
    "LT"		    /DESCRIPTION = "Less than"
    "IS-LESS-THAN"	    /DESCRIPTION = "Less than"
    "LE"		    /DESCRIPTION = "Less than or equal to"
    "TO"		    /DESCRIPTION = "Less than or equal to"
    "IS-FROM {literal} TO"  /DESCRIPTION = "Within a range of values"
    "NOT-FROM {literal} TO" /DESCRIPTION = "Not within a range of values"
    "CONTAINS"		    /DESCRIPTION = "Includes a matching string"
    "OMITS"		    /DESCRIPTION = "Omits if a string matches"
    "INCLUDES"		    /DESCRIPTION = "include a list of literals"
    "EXCLUDES"		    /DESCRIPTION = "excludes a set of literals"
end define

define placeholder "relation_phrase" -
    /language = FOCUS -
    /description = "relational expression used for record selection" -
    /type = NONTERMINAL
    "{fieldname} {relation} {literal}..." 
end define

define placeholder "relational_operator" -
    /language = FOCUS -
    /description = "relational operator used for MATCH command selections" -
    /type = MENU
    "OLD-OR-NEW"    /DESCRIPTION = "records appearing in old OR new files"
    "OLD-AND-NEW"   /DESCRIPTION = "records appearing in BOTH old and new files"
    "OLD-NOT-NEW"   /DESCRIPTION = "records appearing in ONLY the old file"
    "NEW-NOT-OLD"   /DESCRIPTION = "records appearing in ONLY the new file"
    "OLD-NOR-NEW"   /DESCRIPTION = "set of NON-MATCHING records from both files"
    "OLD"	    /DESCRIPTION = "only records from the OLD file will appear"
    "NEW"	    /DESCRIPTION = "only records from the NEW file will appear"
end define

define placeholder "reserved_variables" -
    /language = FOCUS -
    /description = "reserved variables" -
    /type = MENU
    "&CURSOR"    /DESCRIPTION = "cursor position"
    "&CURSORAT"  /DESCRIPTION = "reads the cursor position"
    "&ECHO"      /DESCRIPTION = "controls terminal display during execution"
    "&PFKEY"     /DESCRIPTION = "PF key function"
    "&QUIT"      /DESCRIPTION = "controls QUIT or PF1 FOCEXEC exit"
    "&STACK"     /DESCRIPTION = "controls control statement or FOCEXEC execution"
end define

define placeholder "result" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter a value to be assigned if the decode matches the code"
end define

define placeholder "RETRIEVE" -
    /language = FOCUS -
    /description = "CHECK command option" -
    /type = NONTERMINAL
    "RETRIEVE"
end define

define placeholder "REPAGE" -
    /language = FOCUS -
    /description = "Resets the page number to 1 at the sort break" -
    /type = NONTERMINAL
    "REPAGE"
end define

!   S placeholders

define placeholder "savb_phrase" -
    /language = FOCUS -
    /description = "ON TABLE command option" -
    /type = NONTERMINAL
    "SAVB [AS filename] [ MISSING ]"
end define

define placeholder "save_phrase" -
    /language = FOCUS -
    /description = "ON TABLE command option" -
    /type = NONTERMINAL
    "SAVE [AS filename] [ FORMAT ] [ MISSING ]"
end define

define placeholder "screen_element" -
    /language = FOCUS -
    /description = "User defined text, fields or spot markers" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "[-][text]"
end define

define placeholder "seed" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Seed or field containing the seed for the random number generator"
end define

define placeholder "select_expression" -
    /language = FOCUS -
    /description = "code or file to use with DECODE verb" -
    /type = MENU
    "{code result}..."  /DESCRIPTION = "explicitly defined decode list"
    "{filename}"        /DESCRIPTION = "file containing the decode list"
end define

define placeholder "selection_phrase" -
    /language = FOCUS -
    /description = "record selection phrase for IF verb" -
    /type = MENU
    "{recordlimit_phrase}"  /DESCRIPTION = "based retrievals"
    "{readlimit_phrase}"    /DESCRIPTION = "based on successful reads"
    "{relation_phrase}"	    /DESCRIPTION = "based on relational expression"
end define

define placeholder "setting" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = MENU
    "ON"        /DESCRIPTION = "page numbers displayed"
    "OFF"       /DESCRIPTION = "page numbering suppressed"
    "NOPAGE"	/DESCRIPTION = "page breaks suppressed"
end define

define placeholder "skip-line_clause" -
    /language = FOCUS -
    /description = "ON or BY command option" -
    /type = NONTERMINAL
    "{fieldname} SKIP-LINE"
end define

define placeholder "statement" -
    /language = FOCUS -
    /description = "Any valid FOCUS statement or command" -
    /type = TERMINAL
    "Enter any valid FOCUS statement or command"
end define

define placeholder "source" -
    /language = FOCUS -
    /description = "DECODE source type" -
    /type = MENU
    "{fieldname}"   /DESCRIPTION = "defined or explicit database field"
    "SELECT"        /DESCRIPTION = "to look for values in a literal file"
end define

define placeholder "start" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Starting position of the substring within the parent string"
end define

define placeholder "startbit" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of the first bit in the string, counting from the left-most bit"
end define

define placeholder "statistical_variables" -
    /language = FOCUS -
    /description = "variables reserved for system use" -
    /type = MENU
    "&LINES"	/DESCRIPTION = "number lines printed in last report"
    "&RECORDS"	/DESCRIPTION = "number records retrieved in last report"
    "&TRANS"	/DESCRIPTION = "number transactions processed"
    "&ACCEPTS"	/DESCRIPTION = "number transactions rejected"
    "&NOMATCH"	/DESCRIPTION = "number transactions rejected as not matching"
    "&FORMAT"	/DESCRIPTION = "number transactions rejected for format error"
    "&INVALID"	/DESCRIPTION = "number transactions rejected because of invalid cond."
    "&DUPLS"	/DESCRIPTION = "number transactions rejected because of duplicates"
    "&INPUT"	/DESCRIPTION = "number segments input"
    "&CHNGD"	/DESCRIPTION = "number segments updated"
    "&DELTD"	/DESCRIPTION = "number segments deleted"
    "&BASEIO"	/DESCRIPTION = "number input/output operations"
    "&READS"	/DESCRIPTION = "number physical reads from external file"
    "&REJECTS"	/DESCRIPTION = "number of other rejected transactions"
end define

define placeholder "string" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Alphanumeric string"
end define

define placeholder "structure_or_clear" -
    /language = FOCUS -
    /description = "JOIN command options" -
    /type = MENU
    "CLEAR {joinname}"	/DESCRIPTION = "clear a JOIN structure"
    "{join_structure}"	/DESCRIPTION = "create a JOIN structure"
end define

define placeholder "subfoot_clause" -
    /language = FOCUS -
    /description = "report footing insertion phrase" -
    /type = NONTERMINAL
    "{fieldname} [PAGE-BREAK AND] SUBFOOT"
    "{text}"
end define

define placeholder "subhead_clause" -
    /language = FOCUS -
    /description = "subheading insertion phrase" -
    /type = NONTERMINAL
    "{fieldname} [PAGE-BREAK AND] SUBHEAD"
    "{text}"
end define

define placeholder "sublength" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the substring"
end define

define placeholder "sublen" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "Length of the substring"
end define

define placeholder "subsize" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The maximum length of a subline"
end define

define placeholder "substring" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Character string within the parent string"
end define

define placeholder "sub-total_clause" -
    /language = FOCUS -
    /description = "Action verb for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} SUB-TOTAL [AS 'text'] [MULTILINES]"
end define

define placeholder "subtotal_clause" -
    /language = FOCUS -
    /description = "Action verb for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} SUBTOTAL {field(s)}..."
end define

define placeholder "summarize_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} SUMMARIZE {field(s)}... [MULTILINES]"
end define

define placeholder "sup-print_clause" -
    /language = FOCUS -
    /description = "Action clause for ON or BY" -
    /type = NONTERMINAL
    "{fieldname} SUP-PRINT"
end define

define placeholder "switch" -
    /language = FOCUS -
    /description = "Boolean flag" -
    /type = MENU
    "ON"
    "OFF"
end define

define placeholder "system_variables" -
    /language = FOCUS -
    /description = "variables reserved for system use" -
    /type = MENU
    "&DATE"	/DESCRIPTION = "current date, displayed as MM/DD/YY"
    "&TOD"	/DESCRIPTION = "time of day, displayed as HH.MM.SS"
    "&MDY"	/DESCRIPTION = "current date in MMDDYY form"
    "&YMD"	/DESCRIPTION = "current date in YYMMDD form"
    "&ECHO"	/DESCRIPTION = "Test mode"
    "&IORETURN"	/DESCRIPTION = "-READ or -WRITE return: 0=success, else 1"
    "&RETCODE"	/DESCRIPTION = "-VMS return: 0=success, else 1"
end define

!   T placeholders

define placeholder "table_clause" -
    /language = FOCUS -
    /description = "ON action phrases for TABLE requests" -
    /type = NONTERMINAL
    "TABLE {hold_or_save_or_total}"
end define

define placeholder "table_phrase" -
    /language = FOCUS -
    /description = "Options for ON or BY verbs in table requests" -
    /duplication = VERTICAL -
    /type = MENU
    "{sub-total_clause}"    /DESCRIPTION = "subtotal all numerical values"
    "{subtotal_clause}"	    /DESCRIPTION = "subtotal only specified field"
    "{recompute_clause}"    /DESCRIPTION = "recompute at specified sort break"
    "{summarize_clause}"    /DESCRIPTION = "recompute values at each sort break"
    "{recap_clause}"	    /DESCRIPTION = "subtotal but only display result"
    "{compute_clause}"	    /DESCRIPTION = "subtotal but only display result"
    "{page-break_clause}"   /DESCRIPTION = "new page started at sort break"
    "{skip-line_clause}"    /DESCRIPTION = "blank line inserted at sort break"
    "{subfoot_clause}"      /DESCRIPTION = "footing inserted at sort break"
    "{subhead_clause}"      /DESCRIPTION = "subheading inserted at sort break"
    "{fold-line_clause}"    /DESCRIPTION = "shift columns following sort break"
    "{under-line_clause}"   /DESCRIPTION = "draw a line when field changes"
    "{sup-print_clause}"    /DESCRIPTION = "suppress printing of field values"
    "{noprint_clause}"	    /DESCRIPTION = "suppress printing of field values"
    "{table_clause}"	    /DESCRIPTION = "verbs specific to TABLE requests"
end define

define placeholder "tbs" -
	/language = FOCUS -
	/description = "To be specified" -
	/type = TERMINAL
	"Enter a text string"
end define

define placeholder "text" -
    /language = FOCUS -
    /description = "Alpha input string" -
    /type = TERMINAL
    "Enter a text string"
end define

define placeholder "text." -
    /language = FOCUS -
    /description = "Alpha input string" -
    /type = NONTERMINAL
    ".{text}"
end define

define placeholder "THEN" -
    /language = FOCUS -
    /description = "Alpha input string" -
    /type = NONTERMINAL
    "THEN"
end define

define placeholder "todate" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The ending date in year-month format"
end define

define placeholder "toknum" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The number of the token to extract"
end define

define placeholder "ptype" -
    /language = FOCUS -
    /description = "Prompt type" -
    /type = MENU
    "NORMAL"	/DESCRIPTION = "FOCUS standard single or double carat prompts"
    "EXPANDED"	/DESCRIPTION = "3-character abbreviations of commands"
end define

!   U placeholders

define placeholder "under-line_clause" -
    /language = FOCUS -
    /description = "ON or BY command option" -
    /type = NONTERMINAL
    "{fieldname} UNDER-LINE"
end define

!   V placeholders

define placeholder "value" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = TERMINAL
    "Enter a value"
end define

define placeholder "var" -
    /language = FOCUS -
    /description = "Variations used to pass printer control characters" -
    /type = MENU
    "+"	/DESCRIPTION = "suppresses the line feed following the printing of text"
    "0" /DESCRIPTION = "forces a line feed before the message text is displayed"
    "1" /DESCRIPTION = "forces a page eject before the message is printed"
end define

define placeholder "variable," -
    /language = FOCUS -
    /description = "User defined local or global variable, read from a file" -
    /duplication = HORIZONTAL -
    /separator = ", " -
    /type = NONTERMINAL
    "[&]&{name}[.format.]"
end define

define placeholder "verb" -
    /language = FOCUS -
    /description = "action for TABLE requests" -
    /duplication = VERTICAL -
    /type = MENU
    "PRINT" /TOKEN
    "LIST"  /TOKEN
    "SUM"   /TOKEN
    "WRITE" /TOKEN
    "ADD"   /TOKEN
    "COUNT" /TOKEN
end define

define placeholder "verb_statement" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = VERTICAL -
    /type = NONTERMINAL
    "{verb} [AND compute]"
end define

!   W placeholders

define placeholder "word" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /duplication = HORIZONTAL -
    /separator = " " -
    /type = TERMINAL
    "Character string to replace expression, up to 80 characters in length"
end define

define placeholder "WITH realfield" -
    /language = FOCUS -
    /description = "Alpha input field" -
    /type = NONTERMINAL
    "WITH {fieldname}"
end define

!   X placeholders

!   Y placeholders

define placeholder "year-month" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The input date in year-month format"
end define

define placeholder "year-month-day" -
    /language = FOCUS -
    /description = "Numeric input field" -
    /type = TERMINAL
    "The input date in year-month-day format"
end define

!   Z placeholders

!
!   FOCUS command construct placeholder templates:
!

define placeholder "define_block" -
	/language = FOCUS -
	/description = "DEFINE request block" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"DEFINE FILE {filename} [fieldname] [CLEAR] [ADD]"
	"{define_expression}..."
	"END"
end define

define placeholder "let_block" -
	/language = FOCUS -
	/description = "Long form of the LET command" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"LET"
	"{equate_phrase(s)}..."
	"END"
end define

define placeholder "table_block" -
	/language = FOCUS -
	/description = "TABLE request block" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"TABLE FILE {filename}"
	"{verb_statement}..."
	"[if_statement]..."
	"[by_statement]..."
	"[on_statement]..."
	"END"
end define

define placeholder "tablef_block" -
	/language = FOCUS -
	/description = "TABLEF request block" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"TABLEF FILE {filename}"
	"{verb_statement}"
	"END"
end define

define placeholder "match_block" -
	/language = FOCUS -
	/description = "TABLE request block" -
	/duplication = VERTICAL -
	/type = NONTERMINAL
	"MATCH FILE {filename}"
	"{verb_statement}"
	"[if_statement]..."
	"[by_statement]..."
	"RUN"
	"{FILE filename}..."
	"END"
end define

!
!   Module level placeholder templates:
!

define placeholder "focexec template" -
	/language = FOCUS -
	/description = "FOCUS executable template" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"[module level comments]"
	""
	"[include file]..."
	""
	"[program unit]..."
	""
end define

define placeholder "include file" -
	/language = FOCUS -
	/description = "Focexec file to include" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-INCLUDE {filename}"
end define

define placeholder "program unit" -
	/language = FOCUS -
	/description = "Program subroutine or block structure" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"[unit level comments]"
	"[statement or construct]..."
end define

define placeholder "statement or construct" -
	/language = FOCUS -
	/description = "A program functional block" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = MENU
	"statement"	    /PLACEHOLDER
	"line comment"	    /PLACEHOLDER
	"comment block"	    /PLACEHOLDER
end define

define placeholder "line comment" -
	/language = FOCUS -
	/description = "A line comment" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-* [text]"
end define

define placeholder "comment block" -
	/language = FOCUS -
	/description = "A block comment" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-*++"
	"-*"
	"-*  [tbs]..."
	"-*"
	"-*--"
end define

define placeholder "unit level comments" -
	/language = FOCUS -
	/description = "Unit comments" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-*++"
	"-*"
	"-*  FUNCTIONAL DESCRIPTION:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  FORMAL PARAMETERS:" 
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  IMPICIT INPUTS:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  IMPLICIT OUTPUTS:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  SIDE EFFECTS:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*--"
end define

define placeholder "module level comments" -
	/language = FOCUS -
	/description = "Module comments" -
	/duplication = VERTICAL -
	/separator = " " -
	/type = NONTERMINAL
	"-*++"
	"-*"
	"-*  FACILITY:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  ABSTRACT:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  AUTHORS:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  CREATION DATE:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*  MODIFICATION HISTORY:"
	"-*"
	"-*	[tbs]"
	"-*"
	"-*--"
end define