下列是判断某个语法是否是DFA有穷自动机代码的一个例子,判断的例子如图下图:
import java.util.*;
public class DFA {
char startState; //保存开始符
char[] test; //保存非终结符a,b,c,d
char[] state; //保存终结符1,2,3,4,5,6,7
char[][] transTable; //保存每一个终结符与非终结符产生的终结符
char[] endState; //保存结束符
public DFA() {
startState = ‘1’;
test = new char[] {‘a’,‘b’,‘c’,‘d’};
state = new char[] { ‘1’, ‘2’, ‘3’,‘4’, ‘5’, ‘6’,‘7’ };
transTable = new char[][]{
{‘3’,‘2’,’ ‘,’ ‘},
{‘4’,‘2’,’ ‘,’ ‘},
{’ ‘,‘6’,‘3’,‘5’},
{’ ‘,‘7’,‘3’,‘5’},
{‘4’,’ ‘,’ ‘,’ ‘},
{’ ‘,‘6’,’ ‘,’ ‘},
{’ ‘,‘6’,’ ‘,’ '}};
endState = new char[] { ‘6’,‘7’ };