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

無名指的期待2

無名指的期待2

2016-01-29 12:14

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

一个小语言的词法分析程序
作者:loyalzu

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

下载本文示例代码

前些天写了个小语言的词法分析程序,因为前些天在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

根据此文法,构造一词法分析程序。输入以“#”为结束符
按照这个文法,找出该语言的关键字,如program,begin,end ,if,then,else,以及其他一些特殊符号,然后再构造一个分析表,如下表:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/) 单词符号  类别编号标识符 1常数 2if 3then 4else 5program 6begin 7end 8+ 9- 10* 11/ 12( 13) 14 15= 16< 17<= 18< 19:= 20; 21. 22
展开更多 50%)
分享

猜你喜欢

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

C语言教程 C语言函数
一个小语言的词法分析程序

一个用C#写的词法分析程序

电脑网络
一个用C#写的词法分析程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

c语言10个经典小程序

编程语言 网络编程
c语言10个经典小程序

编写一个JAVA小程序取得IP地址

编程语言 网络编程
编写一个JAVA小程序取得IP地址

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个域名查询的程序

PHP
一个域名查询的程序

一个简单的焰火程序

编程语言 网络编程
一个简单的焰火程序

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《全民小镇》精灵之城具体活动详细解析

《全民小镇》精灵之城具体活动详细解析

轻松实现DES算法查看器

轻松实现DES算法查看器
下拉加载更多内容 ↓