首页 > 其他分享 >int main(){}syntax error

int main(){}syntax error

时间:2024-05-27 10:12:47浏览次数:16  
标签:错误 修改 int FuncType error 规约 冲突 Btype main

识别mian函数错误。直接定位错误到了BtypeFuncType的重复定义,存在规约规约冲突。
image
推断依据:
image

发现原因:
image
存在移进规约问题,需要解决,这里主要是变量定义和函数定义的问题,但是根据我自己的理解,FuncDef是不会产生冲突的,毕竟follw集都不一样。

VarDecl : Btype VarDefGroup ";" 
		;
Btype 	: INTTK											{cout<<"\033[1;32mBtype\033[0m\t\tint\n"<<endl;}
		| FLOATTK 										{cout<<"\033[1;32mBtype\033[0m\t\tfloat\n"<<endl;}
		;

FuncDef 	: FuncType ID "(" ")" Block 				
			| FuncType ID "(" FuncFParams ")" Block 
			;
FuncType 	: VOIDTK  									{cout<<"\033[1;32mFunction Type\033[0m\t\tvoid\n"<<endl;}
			| Btype  									{cout<<"\033[1;32mFunction Type\033[0m\t\tint or float\n"<<endl;}
			;

Btype往下找,发现了错误,作出修改:
image
还是有错误,重新检查语法分析部分,从头开始查找到错误:
修改了很多,现在其余的错误都消除了,剩下了无法识别返回值不是void类型的函数,也就是说BtypeFuncType冲突了。尝试解决中,先存档。
git idb856edd25cf6ef1af120a04e306cf6fe4b910324
重大进展,当我把FuncType全部展开时,前面的问题消失了,函数体的识别都正常了,但是文件读取似乎还不能正常的退出需要再修改一下,测试如下:
对了,我换KUbuntu了,所以中终端也换成了Kconsole,所以不再是用之前的终端了,不过还是有些想ta的。hh
image
代码的修改主要如下:
image
image
但是还是存在一个冲突:

warning: 1 shift/reduce conflict [-Wconflicts-sr]

不过好在离成功更近了一步。暂时没有发现这个冲突,于是先修改读入文件会出错的问题。
问题非常简单,很快就修好了。现在是一个未被我发现的移进规约冲突,在后续测试中应该会出现的,暂时先不处理。
image
又发现了一个文法错误,这个错误是自己在写文法的时候写错了。错误解决如下:
image
项目中加入了头歌的文法测试程序,全部通过。

标签:错误,修改,int,FuncType,error,规约,冲突,Btype,main
From: https://www.cnblogs.com/zhywyt/p/18209558

相关文章

  • 课程及 InternLM2 技术报告笔记
    系列文章目录文章目录系列文章目录课程及InternLM2技术报告笔记课程及InternLM2技术报告笔记大模型成为发展通用人工智能的重要途径书生·浦语大模型开源历程书生·浦语2.0(InternLM2)的体系回归语言建模的本质书生·浦语2.0(InternLM2)的主要亮点......
  • Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置
    前言在上一篇《IntelHDSLB高性能四层负载均衡器—快速入门和应用场景》中,我们着重介绍了HDSLB(HighDensityScalableLoadBalancer,高密度可扩展的负载均衡器)作为新一代高性能四层负载均衡器的需求定位、分析了HDSLB在云计算和边缘计算应用场景中的特性优势,以及解读了HDS......
  • idea启动报错:java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory
    文章目录一、问题二、解决方法一、问题问题描述:idea整合Mybatis-plus的时候,启动报错:java.lang.NoClassDefFoundError:org/mybatis/logging/LoggerFactory二、解决方法可能原因:仔细检查了一下,发现mybatis-spring-boot-starter的包和mybatis-plus-boot-starter的......
  • USB EHCI(Enhanced Host Controller Interface)与OHCI(Open Host Controller Interface)
    USBEHCI(EnhancedHostControllerInterface)与OHCI(OpenHostControllerInterface)在多个方面存在显著的差异,以下是对这些差异的分点表示和归纳:1.**接口标准与版本**:-EHCI:这是Intel主导的USB2.0的接口标准。它专门描述了一个通用串行总线(USB)2.0版的主机控制器的寄存器......
  • IntelliJ 系列软件汉化教程
    1.前言最大的一个亮点莫过于开始支持中文了。相信很多英语不好的同学已经期盼已久了。但是感觉登录界面感觉变丑了!2.汉化体验先来看看我的效果,首先要告诉你这是官方汉化包,并不是第三方!我大致看了一圈,个别还没有汉化完毕,可能没有找到合适的描述词汇吧,但是绝大部分已经......
  • CF1089I Interval-Free Permutations
    标签:析合树析合树就是用来处理这一种值域连续段的问题的。OI-wiki上对于析合树的讲解。我们回顾一下题目,要求不存在长度为\([2,n-1]\)之间的连续段,换句话说,就是根节点下恰有\(n-1\)个节点,且没有任何一个字段是题目中要求的连续段。我们记这样的答案为\(A_n\)也就......
  • print-js打印
    Print.js--网页文件打印 官网地址是:https://printjs.crabbly.com/Print.js有四种打印文档类型可用:’pdf‘,’html','图像’和json。默认类型是’pdf'。它的基本用法是呼叫printJS()只需输入一个PDF文档网址:printJS('docs/PrintJS.pdf')。对于图像文件,想法是一样......
  • IntelliJ IDEA Community Edition 下载安装
    文章目录下载安装包安装中文插件卸载下载安装包下载IntelliJIDEA–领先的Java和KotlinIDE根据你的电脑操作系统选择合适的版本:IntelliJIDEAUltimate为付费版本,我们需要往下滑找到IntelliJIDEACommunityEdition,点击Download(如果需要,可以点击展开选......
  • Intl
    Intl.Collator排序器的构造函数,可以支持对语言敏感的字符串比较letlist=[1,2,3,10,11,12,20,21,22,100,102,103,200,201,202,130,220];//numeric:是否按照数值进行比较letcollator=Intl.Collator(undefined,{numeric:true});list.sort();//[......
  • D - Intersecting Intervals
    D-IntersectingIntervals 思路对于区间重合问题,经典做法对left进行排序,然后进行统计计数。写了一版TLE,反思有冗余计数问题。计算每一个区间的覆盖数目,不需要TLE版本逐个往后数,只需要使用lower_bound找出第一个大于等于ri+1 的位置,即可得到与i区间重合区间......