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。原程序