主题:交作业,求助大侠?如何写正则表达式。邮箱:jim20008726@yahoo.com.cn
1.词法分析
标识符 字符串:“ “定界
保留字 IF FOR DO DIM 布尔型: TRUE FALSE
数值常量 {定点 浮点
步骤:先分别写出正则表达式,转换为NDFA 再转换为DFA 再化简对化简后进行编程
① 标识符:第一位是字母,后面刊物为字母/数字
{A|B|C...|Z} {A|B|C...|Z|a|b|c...z|0|1|2|...}*是闭包一可有
ε<字母>|{<字母>|〈数字〉}*
②保留字{IF FOR DO DIM}
③数值常量 {+|-|ε}{〈数字〉}+{.|ε} {(小数点后)〈数字〉}+ {E|ε} {+|-|ε}{<数字>} 方法:用一个正则表达式 或定义为整数,浮点数
④ 字符串文法{“}{〈字母〉|〈数字〉}*{”}
要求设计报告有:分别写出正则表达式,再分别写出NDFA,再用弧将其连起, 确定后化简 得到最简的确定有限自动机, 还有测试程序原代码 。
s=0IF s=0If x=aThen s=1EndIf x=b。。。 DO CASE
程序:结果显示yes
或no
2.词法分析器
布尔表达式词法分析器
①
②变量:一位字母 数值:一位数字
双字符 <
多字符 运算符变成一位运算符 > 关系运算
=
布尔表达式 布@布|布ok布!布|关系表达式|* |F|T
关 数学表达式<数 | 数〉数|数=数 (关)
数 +|-|*|/|( ) | 〈数〉 | 变量
方法:消除左递归 扩充BNF 左提公因子
求规则的SELECT集 证明互斥
要求设计报告有:1。分析2。技术方案3。说明 4。程序设计思路 5。框图 6。原程序
标识符 字符串:“ “定界
保留字 IF FOR DO DIM 布尔型: TRUE FALSE
数值常量 {定点 浮点
步骤:先分别写出正则表达式,转换为NDFA 再转换为DFA 再化简对化简后进行编程
① 标识符:第一位是字母,后面刊物为字母/数字
{A|B|C...|Z} {A|B|C...|Z|a|b|c...z|0|1|2|...}*是闭包一可有
ε<字母>|{<字母>|〈数字〉}*
②保留字{IF FOR DO DIM}
③数值常量 {+|-|ε}{〈数字〉}+{.|ε} {(小数点后)〈数字〉}+ {E|ε} {+|-|ε}{<数字>} 方法:用一个正则表达式 或定义为整数,浮点数
④ 字符串文法{“}{〈字母〉|〈数字〉}*{”}
要求设计报告有:分别写出正则表达式,再分别写出NDFA,再用弧将其连起, 确定后化简 得到最简的确定有限自动机, 还有测试程序原代码 。
s=0IF s=0If x=aThen s=1EndIf x=b。。。 DO CASE
程序:结果显示yes
或no
2.词法分析器
布尔表达式词法分析器
①
②变量:一位字母 数值:一位数字
双字符 <
多字符 运算符变成一位运算符 > 关系运算
=
布尔表达式 布@布|布ok布!布|关系表达式|* |F|T
关 数学表达式<数 | 数〉数|数=数 (关)
数 +|-|*|/|( ) | 〈数〉 | 变量
方法:消除左递归 扩充BNF 左提公因子
求规则的SELECT集 证明互斥
要求设计报告有:1。分析2。技术方案3。说明 4。程序设计思路 5。框图 6。原程序