||INPUT ||CHAIN ||LISTS 

||TABLE1
  1  id
  2  num
  3  lnum
  4  card
  5  lcard
  6  string
  7  char
  8  ,
  9  ;
 10  ←
 11  +
 12  -
 13  *
 14  /
 15  ↑
 16  .
 17  @
 18  $
 19  %
 20  =
 21  #
 22  <
 23  >
 24  <=
 25  >=
 26  INTEGER
 27  CARDINAL
 28  CHARACTER
 29  BOOLEAN
 30  REAL
 31  POINTER
 32  DESCRIPTOR
 33  LONG
 34  TO
 35  BASE
 36  ABS
 37  MAX
 38  MIN
 39  MOD
 40  LENGTH
 41  LOOPHOLE
 42  SIZE
 43  FIRST
 44  LAST
 45  )
 46  ]
 47  (
 48  [
 49  STRING
 50  UNSPECIFIED
 51  MEMORY
 52  !
 53  \
 54  ..
 55  '?
 56  WORD
 57  PROCEDURE
 58  PROC
 59  ERROR
 60  SIGNAL
 61  NIL
 62  eof


||TABLE2
 63  goal
 64  stmtlist
 65  statementlist
 66  statement
 67  lhs
 68  exp
 69  interval
 70  relation
 71  typeexp
 72  typeid
 73  typecons
 74  sum
 75  addop
 76  product
 77  relationtail
 78  relop
 79  multop
 80  factor
 81  primary
 82  prefixop
 83  explist
 84  typeop
 85  desclist
 86  qualifier
 87  bounds


||TABLE3
id              tokenID
num             tokenNUM
lnum            tokenLNUM
card            tokenCARD
lcard           tokenLCARD
string          tokenSTR
char            tokenCHAR
-               tokenMINUS
.               tokenDOT
..              tokenDOTS
=               tokenEQUAL
<               tokenLESS
<=              tokenLE
>               tokenGREATER
>=              tokenGE
eof             endmarker


||TABLE4

                    GOAL ::= goal eof

  1     0  goal           ::= stmtlist \ 

  2     1  stmtlist       ::= statementlist 
  3     1                   | statementlist ; 

  4     2  statementlist  ::= statementlist ; statement 
  5    82                   | statement 

  6     3  statement      ::= lhs ← exp 
  7     4                   | exp 
  8     5                   | exp '? 
  9     6                   | MEMORY interval 
 10     7                   | lhs interval 
 11     8                   | relation 

 12     9  typeexp        ::= id 
 13    81                   | typeid 
 14    81                   | typecons 

 15    10  typeid         ::= INTEGER 
 16    11                   | CARDINAL 
 17    12                   | CHARACTER 
 18    13                   | BOOLEAN 
 19    14                   | REAL 
 20    15                   | STRING 
 21    16                   | UNSPECIFIED 
 22    17                   | WORD 
 23    18                   | PROCEDURE 
 24    18                   | PROC 
 25    19                   | ERROR 
 26    20                   | SIGNAL 
 27    21                   | id . id 
 28    22                   | id id 
 29    23                   | id typeid 
 30    24                   | id $ id 

 31    25  typecons       ::= POINTER TO typeexp 
 32    25                   | @ typeexp 
 33    26                   | LONG typeexp 

 34    27  relation       ::= sum relationtail 

 35    27  sum            ::= sum addop product 
 36    81                   | product 

 37    28  addop          ::= + 
 38    29                   | - 

 39    30  relop          ::= = 
 40    31                   | # 
 41    32                   | < 
 42    33                   | <= 
 43    34                   | > 
 44    35                   | >= 

 45    36  product        ::= product multop factor 
 46    81                   | factor 

 47    37  multop         ::= * 
 48    38                   | / 
 49    39                   | MOD 

 50    40  factor         ::= - primary 
 51    81                   | primary 

 52    41  primary        ::= num 
 53    42                   | lnum 
 54    43                   | card 
 55    44                   | lcard 
 56    45                   | char 
 57    46                   | string 
 58    47                   | NIL 
 59    48                   | NIL [ typeexp ] 
 60    49                   | prefixop [ explist ] 
 61    50                   | typeop [ typeexp ] 
 62    51                   | @ lhs 
 63    52                   | DESCRIPTOR [ desclist ] 
 64    53                   | primary % 
 65    54                   | primary % ( typeexp ) 
 66    81                   | lhs 

 67    55  lhs            ::= id 
 68    56                   | LOOPHOLE [ exp ] 
 69    57                   | LOOPHOLE [ exp , typeexp ] 
 70    58                   | MEMORY [ exp ] 
 71    59                   | id $ id 
 72    60                   | num $ id 
 73    60                   | card $ id 
 74    81                   | ( exp ) 
 75    81                   | lhs qualifier 

 76    61  qualifier      ::= [ explist ] 
 77    62                   | . id 
 78    63                   | ↑ 

 79    64  prefixop       ::= LONG 
 80    65                   | ABS 
 81    66                   | MIN 
 82    67                   | MAX 
 83    68                   | BASE 
 84    69                   | LENGTH 

 85    70  typeop         ::= SIZE 
 86    71                   | FIRST 
 87    72                   | LAST 

 88    73  interval       ::= [ bounds ] 
 89    74                   | [ bounds ) 
 90    75                   | ( bounds ] 
 91    76                   | ( bounds ) 
 92    77                   | [ exp ! exp ] 

 93    78  bounds         ::= exp .. exp 

 94    79  desclist       ::= exp , exp 
 95    80                   | exp , exp , typeexp 
 96    81                   | exp 

 97    81  exp            ::= sum 

 98    81  relationtail   ::= relop sum 

 99    82  explist        ::= exp 
100    83                   | explist , exp 
101    84                   |