词法分析器-c++

作者: Rememberautumn 分类: 未分类 发布时间: 2015-10-16 14:08 阅读: 2,567

词法分析程序需具备词法分析的功能:输入:所给文法的源程序字符串。(字符串以“#”号结束)输出:二元组(syn,token或sum)构成的序列。其中:syn为单词种别码;token为存放的单词自身字符串;sum为整型常数。例如:对源程序begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列:

(1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)……

单词符号 种别编码
begin 1
if 2
then 3
while 4
do 5
end 6
l(l|d)* 10
dd* 11
+ 13
14
* 15
/ 16
: 17
:= 18
< 20
<> 21
<= 22
> 23
>= 24
= 25
; 26
( 27
) 28
# 0

 

一、实验题目 词法分析器-c++

对下述文法和单词表定义的语言设计编制一个语法分析器。

  • 单词符号及种别表

输出单词标号

单词符号 种别编码 单词值
main 1
int 2
float 3
double 4
char 5
if 6
else 7
do 8
while 9
l(l|d)* 10 内部字符串
 ( +|-|ε ) dd*(.dd* | ε)( e ( +|-|ε ) dd*|ε) 20 二进制数值表示
= 21 1
+ 22 1
23  1
* 24
/ 25
( 26
) 27
{ 28
} 29
, 30
; 31
> 32
>= 33
< 34
<= 35
== 36
!= 37

 

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注