//将正规式转变成NFApackage hjzgg.formal_ceremony_to_dfa; import java.util.ArrayList; class Edge{ public int u, v; public char key; public Edge(int u, int v, char key) { super(); this.u = u; this.v = v; this.key = key; } @Override public String toString() {
. 词法分析 1.1 词法记号及属性 词法记号.模式.词法单元 记号名 词法单元列举 模式的非形式描述 if if 字符i,f for for 字符f,o,r relation <,<=,=,... <或<=或=或... id sum,count,D5 由字母开头的字母数字串 number 3.1,10,2.8 E12 任何数值常数 literal “seg.error” 引号“和”之间任意不含引号本身的字符串 历史上词法定义中的一些问题 ---- 忽略空格带来的困难
目的:熟悉cygwin环境的使用,学习使用lex写简单的词法分析程序,会在cygwin环境下使用flex调试lex写的程序 内容:使用cygwin下的flex工具将exam1.l和exam2.l编译并调试通过.并且修改exam2.l,在其基础上增加如下记号: l 左右大小括号:{ } ( ) l 将关系算符改写成C中的形式 l 分号.赋值号:; = l 关键字:if else l 双斜线表示的注释:// l 算术运算符号:+ - * / l 将标识符改为可含有下划线,并且可以以下