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

词法分析程序

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

#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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 程序员法则_智脑黑客

    程序员法则_智脑黑客1.作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。2.程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。3.编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。4.程序不是年轻的专利,但是,他属于年轻。5.没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。6.一个好汉

    2022年10月7日
  • nginx配置ssl证书实现https访问_ssl证书有效期

    nginx配置ssl证书实现https访问_ssl证书有效期1,登录阿里云,工作台找SSL证书或者安全下找CA证书2,点击创建证书(或购买证书),创建好以后点击证书申请、3,设置配置以及域名信息,仅填写圈住内容,其他默认即可4,随后等待一会,查看状态,是否为 已签发5,为已签发时,点击下载选择下载类型6,下载后解压文件7,上传至服务器,存放位置,先找到nginx所在位置 “/nginx/conf/”找到该位置创建“cert”把刚才解压的两个文件存放至此。8,开始nginx配置内容`server { #SSL 访问端口号为 443 li

    2022年8月19日
  • C++学习——动态内存分配「建议收藏」

    C++学习——动态内存分配「建议收藏」文章目录何为静态内存分配?为什么需要动态内存分配解决方法:动态内存分配动态申请内存操作符 newnew 类型名T(初始化参数列表)释放内存操作符deletedelete 指针名p注意问题内存泄露举例申请和释放动态数组动态创建多维数组何为静态内存分配?通常定义变量(或对象),编译器在编译时可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时候事先为他们分配确定的存储空间。这种…

    2022年8月18日
  • unable to access android sdk add-on list解决方案[通俗易懂]

    unable to access android sdk add-on list解决方案[通俗易懂]AndroidStudio报错unabletoaccessandroidsdkadd-onlist解决方案问题原因解决方案1.配置Proxy2.跳过检测在AndroidStudio的安装目录下,找到\bin\idea.properties在尾行添加disable.android.first.run=true,表示初次启动不检测SDK跳过后设置AndroidStuido模式下载SDK总结问题更新AndroidStudio4.2版本,启动后报错如下原因AS启动之后,会检查默

    2022年7月19日
  • LeetCode1两数之和

    LeetCode1两数之和题目:给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]分析:可以直接遍历两遍数组,第一遍用target-nums[i],第二遍找nums数组中是否存在target-num…

    2022年5月7日
  • 计算距离矩阵的方法_距离矩阵计算

    计算距离矩阵的方法_距离矩阵计算给定一个 N 行 M 列的 01 矩阵 A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=|i−k|+|j−l|输出一个 N 行 M 列的整数矩阵 B,其中:B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(A[i][j],A[x][y])输入格式第一行两个整数 N,M。接下来一个 N 行 M 列的 01 矩阵,数字之间没有空格。输出格式一个 N 行 M 列的矩阵 B,相邻两个整数之间用一个空格隔开。数据范围

    2022年8月9日

发表回复

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

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