1: ::= program identifier ( ) ; 2: ::= identifier 3: ::= , identifier 4: ::= 5: ::= var 6: ::= 7: ::= : ; 8: ::= : ; 9: ::= 10: ::= 11: ::= 12: ::= integer 13: ::= real 14: ::= array [ constant .. constant ] of 15: ::= 16: ::= 17: ::= 18: ::= function identifier : result ; 19: ::= procedure identifier ; 20: ::= ( ) 21: ::= 22: ::= : 23: ::= ; : 24: ::= 25: ::= begin end 26: ::= 27: ::= ; 28: ::= 28: ::= 30: ::= if then 31: ::= while do 32: ::= else 33: ::= 34: ::= identifier 35: ::= 36: ::= assignop 37: ::= 38: ::= [ ] 39: ::= 40: ::= ( ) 41: ::= 42: ::= 43: ::= , 44: ::= 45: ::= 46: ::= relop 47: ::= 48: ::= 49: ::= 50: ::= addop 51: ::= 52: ::= 53: ::= mulop 54: ::= 55: ::= identifier 56: ::= constant 57: ::= ( ) 58: ::= not 59: ::= 60: ::= 61: ::= ( ) 62: ::= 63: ::= unaryplus 64: ::= unaryminus 65: ::= endmarker