编译原理实验三——语法分析(递归下降法)

原创 2006年05月31日 22:18:00

[实验任务]
完成以下描述算术表达式的LL(1)文法的递归下降分析程序
G[E]:
        E→TE′
        E′→ATE′|ε
        T→FT′
        T′→MFT′|ε
        F→ (E)|i
        A→+|-
        M→*|/
     说明:终结符号i为用户定义的简单变量,即标识符的定义。
[设计要求]
1、 输入串应是词法分析的输出二元式序列,即某算术表达式“实验项目一”的输出结果。输出为输入串是否为该文法定义的算术表达式的判断结果。
2、 递归下降分析程序应能发现输入串出错。
3、 设计两个测试用例(尽可能完备,正确和出错),并给出测试结果。

demo.cpp

bool E() {
 if (T()) {
  if (E_prime()) {
   return true;
  }
 }

 return false;
}

bool E_prime() {
 if (A()) {
  if (T()) {
   if (E_prime()) {
    return true;
   }
   else return false;
  }
  else return false;
 }

 return true;
}

bool T() {
 if (F()) {
  if (T_prime()) {
   return true;
  }
 }
 
 return false;
}

bool T_prime() {
 if (M()) {
  if (F()) {
   if (T_prime()) {
    return true;
   }
   else return false;
  }
  else return false;
 }

 return true;
}

bool F() {
 if (a == '(') {
  advance();
  if (E()) {
   if (a == ')') {
    advance();
    return true;
   }
  }
 }
 else if (a == 'i') {
  advance();
  return true;
 }

 return false;
}

bool A() {
 if (a == '+') {
  advance();
  return true;
 }
 else if (a == '-') {
  advance();
  return true;
 }

 return false;
}

bool M() {
 if (a == '*') {
  advance();
  return true;
 }
 else if (a == '/') {
  advance();
  return true;
 }

 return false;
}

编译原理 实验3 递归下降语法分析程序设计

实验目的】        练习构造递归下降语法分析程序的方法,熟悉上下文无关文法的使用,加深对课堂教学的理解;提高语法分析方法的实践能力 【实验要求】     利用某一高级程序设计语言构造语法分...
  • niu91
  • niu91
  • 2013年06月23日 16:05
  • 16043

递归下降法的语法分析器-3.1-编译原理

递归下降法的语法分析器   一、实验目的 掌握语法分析器的构造原理,掌握递归下降法的编程方法。 二、实验内容 用递归下降法编写一个语法分析程序,使之与词法分析器结合,能够根据语言的上下文无关...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

表达式语法分析——递归子程序法

表达式语法分析——递归子程序法 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description   递...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

2016年秋季《编译原理》课程实验(2014级)表达式语法分析——递归子程序法

#include #include #include #include #include using namespace std; int num; stack A; stack B; int f(c...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

递归下降法的语法分析器-3-编译原理

递归下降法的语法分析器   一、实验目的 掌握语法分析器的构造原理,掌握递归下降法的编程方法。   二、实验内容 用递归下降法编写一个语法分析程序,使之与词法分析器结合,能够根据语言的上下...

递归下降语法分析实验

一、实验目的通过设计、开发一个高级语言的递归下降语法分析程序,实现 对词法分析程序所提供的单词序列进行语法检查和结构分析,加 深对相关课堂教学内容的理解,提高语法分析方法的实践能力。二、实验要求(...
  • SY_Yu
  • SY_Yu
  • 2016年10月30日 09:02
  • 3275
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译原理实验三——语法分析(递归下降法)
举报原因:
原因补充:

(最多只允许输入30个字)