📌  相关文章
📜  LEX代码接受在输入字母{a,b}上具有偶数'a'的字符串

📅  最后修改于: 2022-05-13 01:57:01.782000             🧑  作者: Mango

LEX代码接受在输入字母{a,b}上具有偶数'a'的字符串

先决条件:设计有限自动机

介绍 :
在本文中,我们将讨论 LEX 代码中的DFA ,它接受在输入字母 {a,b} 上具有偶数“a”的字符串。在示例的帮助下。让我们一对一地讨论它。

问题概述:
LEX 代码接受在输入字母 {a, b} 上具有偶数“a”的字符串。

例子 -

Input : aba
Output: Accepted

Input : ababba
Output: Not Accepted

Input: 23ab
Output:Invalid

Input:ab345
Output:Invalid

Input:aabababa
Output:Not Accepted

方法 :
LEX 默认为我们提供了一个初始状态。因此,要制作 DFA,请将其用作 DFA 的初始状态。
我们定义了另外两个状态 - A 和 DEAD,如果遇到错误或无效输入,将使用 DEAD 状态。当用户输入无效字符时,进入 DEAD 状态,然后打印“ Invalid ”。
如果输入字符串以 A 结尾,则显示消息“未接受”。否则,如果输入字符串以状态 INITIAL 结束,则显示消息“已接受”。

笔记 :
要编译 lex 程序,我们需要一个安装了 flex 的 Unix 系统。然后我们需要用 .l 扩展名保存文件。

Example - filename.l

然后保存程序后关闭 Lex 文件,然后打开终端并编写以下命令,如下所示。

lex filename.l
cc lex.yy.c
./a.out

法码:

输出 -