Синтаксический анализ
2

      )       +       -       *

      /       <       =       >

     <=      >=     and     not

     or    cond    else      if

define display newline    set!

#

      S -> PROG #1

   CALC -> E1 #2 |

           BOOL #3 |

           STR #4 |

           DISP #5

   DISP -> ( display E1 ) #6 |

           ( display BOOL ) #7 |

           ( display STR ) #8 |

           ( newline ) #9

   PRED -> HPRED BOOL ) #10

  HPRED -> PDPAR ) #11

  PDPAR -> ( define ( $idq #12 |

           PDPAR $id #13

  CPROC -> HCPROC ) #14

HCPROC -> ( $id #15 |

           HCPROC E #16

  CPRED -> HCPRED ) #17

HCPRED -> ( $idq #18 |

           HCPRED E #19

      E -> $id #20 |

           $float #21 |

           ADD #22 |

           SUB #23 |

           DIV #24 |

           MUL #25 |

           COND #26 |

           CPROC #27

    ADD -> HADD E1 ) #28

   HADD -> ( + #29 |

           HADD E1 #30

    MUL -> HMUL E1 ) #31

   HMUL -> ( * #32 |

           HMUL E1 #33

    SUB -> ( - E1 ) #34

    DIV -> HDIV E1 ) #35

   HDIV -> ( / E1 #36

   BOOL -> $bool #37 |

           CPRED #38 |

           REL #39 |