资源简介
递归下降语法分析器用Java语言编写,编译原理第四章第二题答案
代码片段和文件信息
package chaper1;
import java.util.*;
public class Grammar {
/**
* @param args
*/
public Grammar() {
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Grammar grammar = new Grammar();
System.out.println(“please write a string“);
Scanner string = new Scanner(System.in);
String input = string.next();
for (int i = 0; i < input.length(); i++) {
grammar.a[i] = input.charAt(i);
}
grammar.sym = grammar.a[0];
grammar.E();
if (grammar.sym == ‘#‘)
System.out.println(“匹配成功“);
else
System.out.println(“匹配失败“);
}
char sym;
char[] a = new char[50];
int count = 0;
void E1() {
if (sym == ‘a‘) {
getsymbol();
E();
} else if (sym != ‘)‘ && sym != ‘#‘) {
error();
}
}
void E() {
if (sym == ‘a‘ || sym == ‘(‘ || sym == ‘b‘ || sym == ‘^‘) {
T();
E1();
} else
error();
}
void T() {
if (sym == ‘a‘ || sym == ‘(‘ || sym == ‘b‘ || sym == ‘^‘) {
F();
T1();
} else
error();
}
void T1() {
if (sym == ‘a‘ || sym == ‘(‘ || sym == ‘b‘ || sym == ‘^‘) {
T();
} else if (sym == ‘*‘) {
error();
}
}
void F() {
if (sym == ‘a‘ || sym == ‘(‘ || sym == ‘b‘ || sym == ‘^‘) {
P();
F1();
} else
error();
}
void F1() {
if (sym == ‘*‘) {
if (sym == ‘*‘) {
getsymbol();
F1();
}
}
}
void P() {
if (sym == ‘a‘ || sym == ‘b‘ || sym == ‘^‘) {
getsymbol();}
else if (sym == ‘(‘) {
getsymbol();
E();
if(sym==‘)‘){
getsymbol();
}else
error();
}else
error();
}
void error() {
System.out.println(“匹配失败“);
System.exit(0);
}
void getsymbol() {
sym = a[count++];
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 48128 2009-11-06 15:20 语法的分析.doc
文件 383 2009-10-29 16:29 Grammar\.project
文件 226 2009-10-29 16:29 Grammar\.classpath
文件 1766 2009-11-03 10:40 Grammar\chaper1\Grammar.java
文件 2510 2009-11-06 14:25 Grammar\chaper1\Grammar.class
目录 0 2009-11-06 15:20 Grammar\chaper1
目录 0 2009-11-06 15:20 Grammar
----------- --------- ---------- ----- ----
53013 7
相关资源
- 用Java实现的基于SNL语言的词法分析与
- 华中科技大学 编译原理 面向过程的
- 语法分析器Java语言编写附实验报告
- java开发的基于LL1文法的语法分析器
- LL1语法分析代码有详细解释,压缩包
- java编写的LR语法分析器编译原理实验
- java实现的语法分析程序
- Java实现具有词法匹配、语法分析和中
- javacc实现cmm语法分析
- 用java语言编写的递归下降语法分析器
- 用java实现的语法分析器
- Java实现PL0词法分析、语法分析、语义
- 语法分析器java实现
- 编译原理 词法分析 语法分析 Java版
- 编译原理 LL1语法分析器(JAVA写的)
- java 实现Pascal语法分析
- C编译器java编写词法分析,语法分析,
- 编译原理实验二语法分析java代码Jav
- 语法分析程序递归下降
- 编译原理语法分析Java实现
- 语法分析器(Java实现-带UI界面).zi
- java语法分析器源代码LL(1)文法
- 词法分析器和语法分析器java实现代码
- 编译原理词法分析,语法分析,中间
- LR0语法分析器JAVA
- 编译原理-LR0语法分析--java
- 递归下降法实现语法分析器java
- LR语法分析 java版
- c语言表达式的语法分析器
- java模拟编译器实现词法语法分析生成
评论
共有 条评论