Penguint / DFASolver

一个简陋的确定有限状态自动机(DFA)求解器,编译原理作业自用

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DFASolver

一个简陋的确定有限状态自动机(DFA)求解器,编译原理作业自用

输入

通过以下方式输入一个无空边 NFA:

  1. 状态数 n(之后的状态将用 [0, n-1] 编号)
  2. 接下去 n 行输入每个状态的出边集合。一条出边包括一个后继状态号 v 和转移字符 c,用空格分隔。边之间也需要用空格分隔。一个状态可以加任意条出边,直到行末结束
  3. 开始状态集合 S,用空格分隔
  4. 接受状态集合 T,用空格分隔

输出

输出重新编号的 DFA 状态转移表:

编号 前状态编号 输入字符...
... ... ...

其中第一行为新 DFA 的开始状态,状态名称中有 * 号的状态为新 DFA 的接收状态。

输入样例

number of in vertices: 14
1: 2 1 6 1
2: 3 1 14 0
3: 4 0 8 1
4: 5 1
5: 3 0
6: 7 0
7: 11 1
8: 3 1 9 1 14 0
9: 10 0
10: 11 1
11: 11 0 12 1 14 0
12: 13 0
13: 11 1
14: 
start: 1
terminal: 14

About

一个简陋的确定有限状态自动机(DFA)求解器,编译原理作业自用


Languages

Language:C++ 100.0%