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

無名指的期待2

無名指的期待2

2016-01-29 12:14

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

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

(本文来源于图老师网站,更多请访问https://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,以及其他一些特殊符号,然后再构造一个分析表,如下表:

(本文来源于图老师网站,更多请访问https://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个经典小程序

如何开发一个多种语言版本的C#程序

编程语言 网络编程
如何开发一个多种语言版本的C#程序

lol偷钱流符文搭配推荐

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

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

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

一个域名查询的程序

PHP
一个域名查询的程序

lolAD刺客新符文搭配推荐

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

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

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

轻松实现DES算法查看器

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