代码拉取完成,页面将自动刷新
/**
* @file nfa.h
*
* @brief 非确定有限状态自动机
*/
#ifndef FREX_NFA_H
#define FREX_NFA_H
/**
* 定义NFA状态中,除了ASCII码之外的状态值
*/
enum {
EPSILON = -1, /* epsilon边 */
ACCEPT = -2 /* 接受状态 */
};
/**
* NFA的状态节点
*
* @note
* 1. 当只有一条向外的指向边时,使用out1,不使用out2
* 2. lid(list id),生成DFA状态时,用其来区分该NState是否
* 已经添加进List中,而不需要遍历List。
*/
typedef struct _NState NState;
struct _NState {
int c; /* 接收字符c */
NState *out1; /* 指向下一个NFA状态节点 */
NState *out2; /* 指向下一个NFA状态节点 */
int lid; /* list id */
};
/**
* NFA片段
*/
typedef struct _NFA NFA;
struct _NFA {
NState *beg; /* NFA片段开始状态 */
NState *end; /* NFA片段结束状态 */
};
#endif /* FREX_NFA_H */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。