博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译原理 LL1文法First集算法实现
阅读量:5986 次
发布时间:2019-06-20

本文共 1570 字,大约阅读时间需要 5 分钟。

import java.util.LinkedHashMap;import java.util.Map;import java.util.Set;import java.util.TreeMap;import java.util.TreeSet;public class First {    private Map
> first = new TreeMap
>(); private Map
mp = null; public First(Map
mp) { super(); this.mp = mp; } public Map
> getFirstSet(){ return first; } private Set
findFirst(String curNode, String[] rightNodes){ if(first.containsKey(curNode)) return first.get(curNode); Set
st = new TreeSet
(); for(int i=0; i
tmpSt = findFirst(nextNode, mp.get(nextNode)); st.addAll(tmpSt); if(!tmpSt.contains('$')) break; } } } } first.put(curNode, st); return st; } public String firstKernealCode(){ String content = ""; for(String leftNode : mp.keySet()){ String[] rightNodes = mp.get(leftNode); findFirst(leftNode, rightNodes); } //打印first集合 System.out.println("First集合如下:"); for(Map.Entry
> entry : first.entrySet()){ content += entry.getKey() + " : " + entry.getValue() + "\n"; System.out.println(entry.getKey() + " : " + entry.getValue()); } return content; } public static void main(String[] args){// String[] rightLinearGrammar = {// "E->TE\'",// "E\'->+TE\'|$",// "T->FT\'",// "T\'->*FT\'|$",// "F->(E)|i"// }; String[] rightLinearGrammar = { "S->ABc", "A->a|$", "B->b" }; Map
mp = new LinkedHashMap
(); try{ for(int i=0; i
"); String split2[] = split1[1].split("\\|"); mp.put(split1[0], split2); } } catch(Exception e){ e.printStackTrace(); System.out.println("右线性文法错误!"); } new First(mp).firstKernealCode(); }}

转载地址:http://usflx.baihongyu.com/

你可能感兴趣的文章
ubuntu14.04 gedit 打开txt文件乱码
查看>>
我的友情链接
查看>>
7月第二周B2B类网站排名:阿里巴巴位居榜首
查看>>
ubuntu Gitolite管理git server代码库权限
查看>>
java 23种设计模式中常用的九种
查看>>
我的友情链接
查看>>
2012情人节语录2
查看>>
Citrix打印问题
查看>>
群集之lvs-dr模型
查看>>
判断奇偶数实例
查看>>
【51CTO学院三周年】一个果粉的学习历程
查看>>
spring:文件上传
查看>>
xml布局自定义SurfaceView模板
查看>>
用DD-WRT搭建私有计费WiFi热点教程
查看>>
C++内存管理
查看>>
Elasticsearch杂记(1)
查看>>
自动化运维工具Ansible实战(一)安装部署
查看>>
Windows Server 2012 R2 AD DS搭建
查看>>
802.1X、MAC认证方式
查看>>
trunk 概览解读
查看>>