编译原理实验一——简单词法分析

实验任务是设计一个词法分析程序,处理Pascal语言子集的单词符号,包括标识符、无符号整数、分界符等。程序需要识别大小写字母、数字,并处理注释。设计要求包括定义单词符号类别编码、错误检测和生成二元式序列的中间文件。测试用例需涵盖各种情况。
摘要由CSDN通过智能技术生成

[实验任务]
完成以下正则文法所描述的Pascal语言子集单词符号的词法分析程序。
<标识符>→字母︱ <标识符>字母︱ <标识符>数字
    <无符号整数>→数字︱ <无符号整数>数字
    <单字符分界符> →+ ︱- ︱* ︱; ︱(︱)
    <双字符分界符>→<大于>=︱<小于>=︱<小于>>︱<冒号>=︱<斜竖>*
    <小于>→<                   
<等于>→=
<大于>→>
<冒号> →:
<斜竖> →/
该语言的保留字 :begin  end  if  then  else  for  do  while  and or not   说明: 1 该语言大小写不敏感。
     2 字母为a-z A-Z,数字为0-9。
3可以对上述文法进行扩充和改造。
4 ‘/*……*/’为程序的注释部分。
[设计要求]
1、给出各单词符号的类别编码。
2、词法分析程序应能发现输入串中的错误。
3、词法分析作为单独一遍编写,词法分析结果为二元式序列组成的中间文件。
4、设计两个测试用例(尽可能完备),并给出测试结果。 

demo.cpp

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#includ

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值