资源简介
用java语言编写的递归下降语法分析器用java语言编写的递归下降语法分析器用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
- 上一篇:Playfair密码的算法实现
- 下一篇:在线投票系统源代码JSP+MySql
评论
共有 条评论