资源简介
基于Java实现了DFA,NFA,DFA最小化,NFA转化为DFA以及正则表达式转化为NFA的算法,对于初学者来说,是学习词法分析的一份不错资源
代码片段和文件信息
package com.kmsoft.mes;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
/**
* Hello world!
*
*/
public class NFA
{
public static void main( String[] args ) throws IOException {
int n m;
BufferedReader in = new BufferedReader(new FileReader(“/实例代码练习/Java/kmsoft-mes/kmsoft-mes-infrastructure/src/main/java/com/kmsoft/mes/NFA.in“));
StringTokenizer st = new StringTokenizer(in.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
while (n != 0)
{
int[][][] move = new int[n][m][];
for(int i=0; i {
String line = in.readLine();
int k = 0;
for (int j=0; j {
while (line.charAt(k) != ‘{‘) k++;
k++;
String states = ““;
while (line.charAt(k) != ‘}‘)
{
states = states + line.charAt(k);
k++;
}
states = states.trim();
if (states.length() > 0)
{
String[] stateArray = states.split(““);
move[i][j] = new int[stateArray.length];
for (int l=0; l }
else move[i][j] = new int[0];
}
}
String[] temp = in.readLine().split(“\\s“);
int[] accept = new int[temp.length];
for (int i=0; i String word = null;
try {
word = in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
while (word.compareTo(“#“) != 0)
{
NFA nfa = new NFA();
if (nfa.recognizeString(move accept word)) System.out.println(“YES“); else System.out.println(“NO“);
word = in.readLine();
}
st = new StringTokenizer(in.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
}
}
boolean recognizeString(int move[][][] int accept_state[] String word)
{
int[] current = new int[2500];
int[] next = new int[2500];
int i;
int j;
int m;
int n;
int sum = 1;
int number;
int p = 0;
char temp;
current[0] = 0;
for(i = 0; i < word.length(); i++)
{
number = 0;
temp = word.charAt(i);
j = temp - ‘a‘ + 1;
for(m = 0; m < sum; m++)
{
for(n = 0; n < move[current[m]][j].length; n++)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-04 00:21 kmsoft-mes-infrastructure\
文件 6148 2018-11-04 00:21 kmsoft-mes-infrastructure\.DS_Store
目录 0 2018-11-04 01:03 __MACOSX\
目录 0 2018-11-04 01:03 __MACOSX\kmsoft-mes-infrastructure\
文件 120 2018-11-04 00:21 __MACOSX\kmsoft-mes-infrastructure\._.DS_Store
文件 2593 2018-11-02 17:27 kmsoft-mes-infrastructure\pom.xm
目录 0 2018-11-04 00:21 kmsoft-mes-infrastructure\src\
文件 6148 2018-11-04 00:21 kmsoft-mes-infrastructure\src\.DS_Store
目录 0 2018-11-04 01:03 __MACOSX\kmsoft-mes-infrastructure\src\
文件 120 2018-11-04 00:21 __MACOSX\kmsoft-mes-infrastructure\src\._.DS_Store
目录 0 2018-11-04 00:21 kmsoft-mes-infrastructure\src\main\
文件 6148 2018-11-04 00:21 kmsoft-mes-infrastructure\src\main\.DS_Store
目录 0 2018-11-04 01:03 __MACOSX\kmsoft-mes-infrastructure\src\main\
文件 120 2018-11-04 00:21 __MACOSX\kmsoft-mes-infrastructure\src\main\._.DS_Store
目录 0 2018-11-04 00:21 kmsoft-mes-infrastructure\src\main\java\
文件 6148 2018-11-04 00:21 kmsoft-mes-infrastructure\src\main\java\.DS_Store
目录 0 2018-11-04 01:03 __MACOSX\kmsoft-mes-infrastructure\src\main\java\
文件 120 2018-11-04 00:21 __MACOSX\kmsoft-mes-infrastructure\src\main\java\._.DS_Store
目录 0 2018-11-04 00:21 kmsoft-mes-infrastructure\src\main\java\com\
文件 6148 2018-11-04 00:21 kmsoft-mes-infrastructure\src\main\java\com\.DS_Store
目录 0 2018-11-04 01:03 __MACOSX\kmsoft-mes-infrastructure\src\main\java\com\
文件 120 2018-11-04 00:21 __MACOSX\kmsoft-mes-infrastructure\src\main\java\com\._.DS_Store
目录 0 2018-11-04 00:30 kmsoft-mes-infrastructure\src\main\java\com\kmsoft\
文件 6148 2018-11-04 00:30 kmsoft-mes-infrastructure\src\main\java\com\kmsoft\.DS_Store
目录 0 2018-11-04 01:03 __MACOSX\kmsoft-mes-infrastructure\src\main\java\com\kmsoft\
文件 120 2018-11-04 00:30 __MACOSX\kmsoft-mes-infrastructure\src\main\java\com\kmsoft\._.DS_Store
目录 0 2018-11-04 00:29 kmsoft-mes-infrastructure\src\main\java\com\kmsoft\mes\
文件 6148 2018-11-04 00:38 kmsoft-mes-infrastructure\src\main\java\com\kmsoft\mes\.DS_Store
目录 0 2018-11-04 01:03 __MACOSX\kmsoft-mes-infrastructure\src\main\java\com\kmsoft\mes\
文件 120 2018-11-04 00:38 __MACOSX\kmsoft-mes-infrastructure\src\main\java\com\kmsoft\mes\._.DS_Store
目录 0 2018-11-04 00:43 kmsoft-mes-infrastructure\src\main\java\com\kmsoft\mes\dfa\
............此处省略59个文件信息
- 上一篇:Java课设学生选课系统
- 下一篇:词法分析器和语法分析器java实现代码---
相关资源
- 精通正则表达式_第三版高清版.
- 用Java做编译原理正规式转换成NFA.ra
- 精通正则表达式第3版中文版
- 编译原理 词法分析 语法分析 Java版
- 词法程序设计——DFA模拟程序
- Java DFA算法实现敏感词、广告词过滤
- 正则表达式转DFA
- java 使用正则表达式验证电话号码的格
- 高效敏感词过滤JAVA实现DFA算法 5000字
- java 正则表达式应用jar包 regex-smart.j
- DFA NFA java实现
- NFA确定化为DFA
- java正则实现解析算术表达式 仅限
- 正则表达式知识详解源代码(java版)
- 一个java正则表达式工具类源代码.zi
- 简单词法分析器,有穷自动机,正规
- 正则表达式语法详解
- NFA转换成DFA的java实现(课程设计)
- 从文本中提取出省市区地址等信息(
- java正则表达式判断密码是否包含大小
- 正则表达式 api分享(chm文档)含
评论
共有 条评论