Syntax Explanation

From Br Wiki
Jump to: navigation, search

Each page contains both syntax notation and a diagram.

The non-diagrammed syntax conventions are as follows
  • Uppercase syntax words are required BR keywords that may be specified as acceptable abbreviations.
  • Although the keywords are uppercase in the diagrams, they may be specified in upper, lower or mixed case.
  • Items in [square brackets] are optional.
  • [,...] indicates the preceding term can be repeated (comma separated).
  • A bar | within a braced group (e.g. {aaa|bbb} )signifies OR, meaning the braces enclose a bar separated list. One of the bar separated terms must be specified.
  • Terms in <angle brackets> must be replaced with appropriate items. When not inherently logical i.e. #<integer>, item descriptions are found in its link or subsequent lines.
  • Punctuation, other than "{}, [], <> and ...", must be specified - i.e. quotation marks, commas, colons etc.
  • Spaces between items mean one or more space is required.
  • Additional spaces may be specified ahead of or following commas.

Example:

blue {black|grey|white} red {pink|orange}

Satisfactory outcomes would be:

blue black red pink     
blue grey red orange  
blue white red pink 
etc...
  • All program lines require a line number (although it's not included in syntax notation).

Example: Delete Statement

DELETE #<file number>[,REC=<numeric expression>|,KEY=<string expression>][,RESERVE|,RELEASE] : {<error condition> <line ref>,}
      numeric expression
      <number>|<numeric variable>|<numeric internal function>|<numeric user-defined function>|<conditional expression>
  
             number
             <A rational number up to 15 digits long>. See RD in BRConfig.sys.
  
             numeric variable
             <1-30 alphanumeric characters and underscores, the first of which must be a letter (but not FN). They also cannot be reserved words> 
  
             numeric internal function
             <An internal function which produces a numeric value>
  
             numeric user-defined function
             <A user defined function that returns a numeric value>
           conditional expression
           <number> <comparison operator> <number>
           |<numeric expression> <comparison operator> <numeric expression>
           |<numeric expression> <comparison operator> <numeric expression> {AND|OR} <conditional expression>
           |<string expression> <comparison operator> <string expression>
           |<string expression><comparison operator><string expression> {AND|OR} [NOT]<string expression><comparison operator><string expression>}
      Conditional expressions evaluate to a boolean numerical value where zero is regarded as false and non-zero is regarded as true. Parentheses, of course, are significant and affect the order of processing. Additional parentheses (properly specified) can be used for visual clarity with no affect on performance.  
      string expression
      <string internal function>|<string user-defined function>|<string constant>|<string variable> {<substring operations>} {<concatenation operations>}
  
             string internal function
             <An internal function with a string value>
  
             string user-defined function
             <One with a string value> 
  
             string constant
             <"a series of characters enclosed in quotation marks"> 
  
             string variable
             <1-30 alphanumeric characters and underscores, the first of which must be a letter (but not FN) which ends in a $. They also cannot be reserved words>