首页 / 知识
关于解析:解决yacc / ocamlyacc中的减少/减少冲突
2023-04-13 00:37:00

Resolving reduce/reduce conflict in yacc/ocamlyacc我正在尝试解析ocamlyacc(与常规yacc几乎相同)中的语法,该语法支持不带运算符的函数应用程序(例如Ocaml或Haskell),以及二进制和一元运算符的常规分类。 我与'-'运算符发生了减少/减少冲突,该冲突可用于减法和负数。 这是我正在使用的语法示例:
问题是,当您获得类似" a-b"的表达式时,解析器不知道该将其简化为" a(-b)"(b的否定,后跟应用程序)还是" a-b"( 减法)。 减法减法是正确的。 我如何解决冲突以支持该规则? 不幸的是,我只能想出的唯一答案就是增加语法的复杂性。 第一步将您的减少/减少冲突转变为转移/减少冲突,但是括号可以解决该问题。
您将对'a b c'遇到相同的问题:是 我认为这可以做到,但是我不确定:
好吧,这个最简单的答案就是忽略它,让默认的reduce / reduce分辨率处理它-减少语法中最先出现的规则。 在这种情况下,这意味着将 |
最新内容
相关内容
python支持r语言吗?
python支持r语言吗?,代码,名称,培训,官网,第一,语言,对象,字符串,方法,后缀,python中可以支持r语言。python提供了一个模块rpy2,可以较好地完Python可以做桌面应用程序吗
Python可以做桌面应用程序吗,平台,系统,较大,标准,培训,界面,桌面,文档,入门,开发者,python可以做桌面应用程序!目前比较主流的几个GUI平台:1python支持多继承吗
python支持多继承吗,培训,代码,不了,上边,函数,属性,例子,父亲,定义,母亲,python多继承单继承有时候可能满足不了我们所需的所以我们就会遇到python是否支持字符串
python是否支持字符串,培训,数据,字符串,字符,引号,中文,内容,也就是,源程序,比如说,python要求,字符串必须使用引号括起来,可以使用单引号或者pythonjava语法区别有哪些
pythonjava语法区别有哪些,名称,培训,数字,数据,能存,标准,数据类型,语法,字符串,分号,1、变量java中定义变量,inta=0;而python中为a=0;由此可python语法是什么意思
python语法是什么意思,基础,培训,数据,函数,语法,定义,文件,语句,关键字,方式,python的语法就是编写python程序时需要遵循的一些规则,以及一些pythonpython2和3语法区别
pythonpython2和3语法区别,数字,培训,字符串,平台,函数,类型,语法,区别,对象,整数,以下是Python2和Python3中的一些语法差异,有需要的小伙伴可python支持哪些数据类型
python支持哪些数据类型,数字,标准,指数,培训,系统,浮点,布尔,表示,类型,个位,python基本数据类型一般分为:数字、字符串、列表、元组、字典、pythonreturn语法错误怎么解决
pythonreturn语法错误怎么解决,培训,函数,语法错误,字符串,数值,使用说明,语句,定义,对象,以上,return语句是python语言中函数返回的一个值,每python不支持next方法吗
python不支持next方法吗,异常,培训,项目,方法,对象,元素,参数,函数,语法,文件,Python3中的File对象不支持next()方法。Python3有一个内置函数python海象运算符的使用
python海象运算符的使用,培训,代码,海象,赋值,操作,可读性,条件下,表达式,意义,以上,python海象运算符的使用1、在判断条件下允许操作。在一python元类冲突的问题
python元类冲突的问题,培训,冲突,问题,之间,实例,以上,错误,关系,部分,更多,python元类冲突的问题1、子类多重继承时,多个父类之间拥有不同的