WEB开发网
开发学院软件开发VC 一个小语言的词法分析程序 阅读

一个小语言的词法分析程序

 2010-01-23 20:32:18 来源:WEB开发网   
核心提示:前些天写了个小语言的词法分析程序,因为前些天在VC知识库看到一个pascal词法分析的程序,一个小语言的词法分析程序,觉得写得挺复杂的,其实词法分析程序的原理都是一样的,好,现在让我们看程序吧,所以我想只要搞明白了简单的词法分析程序,再写复杂的就不难了

前些天写了个小语言的词法分析程序,因为前些天在VC知识库看到一个pascal词法分析的程序,觉得写得挺复杂的。其实词法分析程序的原理都是一样的,所以我想只要搞明白了简单的词法分析程序,再写复杂的就不难了,无非是多加几个关键字,多写几个条件判断语句而已。词法分析是编译程序的基础,也是最简单的。好,现在让我们看程序吧。

先让我们看看这个小语言的文法吧。

G[<程序>]:

<程序>∷=<程序首部>;<分程序>.

<程序首部>∷=program<标识符>

<分程序>∷=<复合语句>

<复合语句>∷=begin<语句序列>end

<语句序列>∷=<语句>{;<语句>}

<语句>∷=<赋值语句>|<复合语句>|<条件语句>

<赋值语句>∷=<标识符>:=<表达式>

<条件语句>∷=if <布尔表达式> then <语句> else <语句>

<表达式>∷=<项>{(+|-)<项>}

<项>∷=<因式>{(*|/)<因式>}

<因式>∷=<标识符>|<无正负号常量>|’(’<表达式>’)’

<布尔表达式>∷=<表达式><关系运算符><表达式>

<关系运算符>∷= =|<|<=|>|>=|<>

<标识符>∷=<字母>{<字母>|<数字>}

<无正负号常量>∷=<数字>{<数字>}[.<数字>{<数字>}]

<字母>∷=a|b|c|d|e|f|g|……|u|v|w|x|y|z

<数字>∷=0|1|2|3|4|5|6|7|8|9

1 2  下一页

Tags:一个 词法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接