词法分析程序「建议收藏」

词法分析程序

大家好,又见面了,我是全栈君。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 100
int a=1;
long g=0;
char nchar[N]
int k=0;
char ch=NULL;
char m[30]={“”};
int sym=-1;
main()
{

char cr;
int n;
printf(“请输入一串字符串:”);
while((cr=getchar())!=’$’)
{

nchar[g]=cr;
g++;
}
do
{

n=getsym();
}while(n);
}
int getsym()
{

int i;
char a[2]={“”};
char word[][15]={“begin”,”do”,”end”,”if”,”then”,”while”};
int wsym[6]={1,2,3,4,5,6};
int ssym[9]={25,26,27,28,0,13,14,15,16};
char b[9]={‘=’,’;’,'(‘,’)’,’#’,’+’,’-‘,’*’,’/’};
if(a==1&&k<g)
{

ch=nchar[k];
j++;
k++;
}
while(ch==’ ‘||ch==10||ch==9||ch==13)
{

if(k==g)
{

return 0;
}
ch=nchar[k];
k++;
}

词法分析程序「建议收藏」

用文法描述词法规则
•<字母>   A->a|b|c|d|……|z|A|B…|Z

•<数字>  B->0|1|2|….|9

•<整数常数>  S->C|SB

      C->1|2|3|…|9


•<标识符>  S->A|SB|SA|S_

•<关键字>  S->begin|if|then|while|do|end

•<运算符>  S->+|-|*|/|=|#|<|<=|>|>=|:=

•<界符>  S->(|),|;|.

转载于:https://www.cnblogs.com/plokm792413896/p/5925065.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108853.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月21日 下午4:00
下一篇 2022年2月21日 下午5:00


相关推荐

  • OpenClaw本地部署 + 飞书接入全系统指南

    OpenClaw本地部署 + 飞书接入全系统指南

    2026年3月12日
    3
  • WaitForSingleObject_调用wait方法时,线程会放弃对象锁

    WaitForSingleObject_调用wait方法时,线程会放弃对象锁摘要在MicrosoftWindows平台上有几种以原子方式锁定代码和数据的不同方法。此白皮书的主要目的是向开发人员简要介绍Windows中进行锁定的不同方法以及与这些锁定有关的相应性能开销。因为未来架构将是多核架构,因此此信息非常适用。简介多线程软件应用对于提升英特尔内核架构的性能至关重要。锁定代码通常是多线程应用中运行最频繁的代码。确定要使用的锁定方法与确定应用中并行处理

    2026年2月2日
    5
  • Python错误:TypeError: ‘int’ object is not callable解决办法

    Python错误:TypeError: ‘int’ object is not callable解决办法今天在练习 Python 类相关的知识时遇到了一个 TypeError 也就是类型错误 该错误的意思是 Int 型的对象是不可调用的 notcallable classUser def init self name age number self name name self age age self custom number defcust

    2026年3月18日
    2
  • Hive_ Hive 建表语句详解

    Hive_ Hive 建表语句详解参考文章 https blog csdn net article details 最近博主在编写一个每天定时创建 Hive 分区的脚本 其中需要创建 Hive 表 开始的时候我以为创建 Hive 表的语句顺序是比较宽松的 经过测试发现不然 Hive 创建表需要比较固定的书写顺序虽然暂时不知道这个顺序 可以查阅什么样的文档找到 如果知道的

    2026年3月26日
    2
  • Python:将列表转为字符串的3种方法「建议收藏」

    Python:将列表转为字符串的3种方法「建议收藏」#一天一个Python小技巧#将列表转为字符串:1、使用for循环testlist=[‘h’,’e’,’l’,’l’,’o’]teststr=”foriintestlist:teststr+=iprint(teststr)2、join方法:testlist=[‘h’,’e’,’l’,’l’,’o’]teststr=””.join(testlist)print(teststr)3、reduce方法:fromfunctools

    2022年5月9日
    58
  • Vue上传文件到springboot

    Vue上传文件到springboot<el-uploadclass=”upload-demo”ref=”upload”accept=”image/png,image/jpg,image/jpeg”:file-list=”fileLists”:on-preview=”handlePreview”…

    2022年10月16日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号