PL/0词法分析程序

PL/0的GETSYM程序专注于源代码的词法分析,包括去除空格、识别关键字、处理标识符、数值拼接和复合词解析,为后续的语法和语义分析提供单词流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  用C语言编写一个PL/0词法分析器,为语法语义分析提供单词,使之能把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析,并把分析结果(基本字,运算符,标识符,常数以及界符)输出。

  PL/0的词法分析程序GETSYM是一个独立的过程,其功能是为语法语义分析提供单词,把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析。其主要任务为:1、滤空格;2、识别基本字;3、识别标识符;4、拼数;5、拼复合词;6、输出源程序。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

using namespace std;
char stayWord[13][15] = {"const","var","procedure","begin","end","odd","if","then","call","while","do","read","write"};
char enumStayWord[13][15] = {"constsym","varsym","proceduresym","beginsym","endsym","oddsym","ifsym","thensym",
                            "callsym","whilesym","dosym","readsym","writesym"};
bool isNumber(char ch);
bool isCase(char ch);
bool isCaculationSymbol(char ch);
bool isBandSymbol(char ch);
int isStayWord(char *str);
void getInputStreamFromFile(char *fileName,char *str);
void calulationString(char *str);
void bandString(char *str);
void Analysis(char *InputFileName,char *str);

int
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值