云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 编译原理 LL(1)语法分析器java版 完整源代码

编译原理 LL(1)语法分析器java版 完整源代码

  • 62 次阅读
  • 3 次下载
  • 2025/6/3 11:04:16

public class Accept2 { public

static

StringBuffer

stack=new

StringBuffer(\); public

static

StringBuffer

stack2=new

StringBuffer(\);

public static void main(String arts[]){ //stack2.deleteCharAt(0);

System.out.print(accept(stack,stack2)); } public

static

boolean

accept(StringBuffer

stack,StringBuffer stack2){//判断识别与否

boolean result=true; outer:while (true) {

System.out.format(\,stack+\); System.out.format(\,stack2+\); char c1 = stack.charAt(stack.length() - 1); char c2 = stack2.charAt(0); if(c1=='#'&&c2=='#') return true; switch (c1) {

case 'E':

if(!E(c2)) {result=false;break outer;} break;

case 'P': //P代表E’ if(!P(c2)) {result=false;break outer;} break; case 'T':

if(!T(c2)) {result=false;break outer;} break;

case 'Q': //Q代表T’ if(!Q(c2)) {result=false;break outer;} break; case 'F':

if(!F(c2)) {result=false;break outer;} break;

default: {//终结符的时候 if(c2==c1){

stack.deleteCharAt(stack.length()-1); stack2.deleteCharAt(0); //System.out.println(); } else{

return false; } } } if(result=false) break outer; }

return result; public static boolean E(char c) {//语法分析子程序boolean result=true; if(c=='i') {

stack.deleteCharAt(stack.length()-1); stack.append(\); }

else if(c=='('){

stack.deleteCharAt(stack.length()-1); stack.append(\);

}

E } else{

System.err.println(\推导时错误!不能匹配!\); result=false; }

return result; }

public static boolean P(char c){//语法分析子程序 P boolean result=true; if(c=='+') {

stack.deleteCharAt(stack.length()-1); stack.append(\); }

else if(c==')') {

stack.deleteCharAt(stack.length()-1); //stack.append(\ System.out.println(\); }

else if(c=='#') {

stack.deleteCharAt(stack.length()-1); //stack.append(\ System.out.println(\);

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

public class Accept2 { public static StringBuffer stack=new StringBuffer(\); public static StringBuffer stack2=new StringBuffer(\); public static void main(String arts[]){ //stack2.deleteCharAt(0); System.out.print(accept(stack,stack2)); } public static boolean accept(StringBuffer sta

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com