home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pilot.zip / pilot.bnf < prev    next >
Text File  |  1986-01-27  |  2KB  |  74 lines

  1. <prog>    ::= <statement_list>
  2.  
  3. <statement_list> ::= <statement> {statement_list}
  4.  
  5. <statement> ::= <type> | <accept> | <match> | <remark> | <jump>
  6.           | <end>  | <use> | <compute>  | <label>  | 
  7.         <type_cont>
  8.  
  9. <type>       ::= 'T' {cond_rel} ':' {arg_list}
  10.  
  11. <accept>  ::= 'A' ':' {identifier}
  12.  
  13. <match>   ::= 'M' ':' {arg_list}
  14.  
  15. <remark>  ::= 'R' ':' <string>
  16.  
  17. <jump>    ::= 'J' {cond_rel} ':' <label>
  18.  
  19. <end>     ::= 'E' {cond_rel}
  20.  
  21. <use>     ::= 'U' {cond_rel} ':' <label>
  22.  
  23. <compute> ::= 'C' {cond_rel} ':' <exp>
  24.  
  25. <label>   ::= '*' <identifier>
  26.  
  27. <type_cont>::= ':' {arg_list}
  28.  
  29. <cond_rel>::= 'Y' | 'N' | '(' <rel_exp> ')'
  30.  
  31. <rel_exp> ::= <identifier> | <expression> <rel_op> <expression>
  32.  
  33. <exp>      ::= (<string_ident> '=' <arg_list>) | 
  34.           (<numeric_ident> '=' <expression>)
  35.  
  36. <expression> ::= <term> {expression2}
  37.  
  38. <expression2>::= <addop> <term> {expression2}
  39.  
  40. <term>         ::= <factor> {term2}
  41.  
  42. <term2>         ::= <mulop> <factor> {term2}
  43.  
  44. <factor>     ::= <numeric_ident> | <number> | 
  45.         '(' <expression> ')'
  46.  
  47. <arg_list> ::= ( <string> | <identifier> ) {arg_list}
  48.  
  49. <ident_const> ::= <identifier> | <number> | <string>
  50.  
  51. <identifier>  ::= <numeric_ident> | <string_ident>
  52.  
  53. <numeric_ident> ::= '#' <a_thru_z> <restricted_string>
  54.  
  55. <string_ident>  ::= '$' <a_thru_z> <restricted_string>
  56.  
  57. <string>    ::= <char> {string}
  58.  
  59. <restricted_string> ::= <limited_char> {restricted_string}
  60.  
  61. <char>        ::= .. any ascii character ..
  62.  
  63. <limited_char>  ::= 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_'
  64.  
  65. <a_thru_z>    ::= 'a' .. 'z' | 'A' .. 'Z'
  66.  
  67. <number>    ::= '0' .. '9' {number}
  68.  
  69. <rel_op>        ::= '<' | '>' | '=' | '<>' | '<=' | '>='
  70.  
  71. <mulop>            ::= '*' | '/'
  72.  
  73. <addop>            ::= '+' | '-' 
  74.