递归下降的预则分析法

本文介绍了递归下降的预测分析方法,包括消除左递归、提取公因子、计算first集和follow集,以及如何构造预则分析表。以一个包含加法、乘法和括号的计算器文法为例,详细阐述了整个过程。
摘要由CSDN通过智能技术生成

递归下降的预测分析

  1. 消除左递归
  2. 提取公因子
  3. 求first集和follow集
  4. 构造预则分析表

下面以一个支持加法,乘法和括号运算符的计算器文法为例为例子

E->E+T|T
T->T*F|F
F->(E)|id

消除左递归后

E->TE'
E'->+TE'|空
T->FT'
T'->*FT'|空
F->(E)|id

构造出的预则分析表如下

package test;

import java.util.Scanner;

public class PredictAna {
   
    int p = 0;
    char[] input;

    void E() throws SyntaxException {
   
        char t = input[p];
        if (t == 'i' || t == '(') {
   //应用产生式 E -> T E1
            T();
            E1();
        } else throw new SyntaxException();
    }

    void E1() throws SyntaxException {
   
        char 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值