|  | ! 
!     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
 | 
|  | ! 
!     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
 |