Parsing 为什么它会给我这个错误?Python解析器
我正在用ply开发一个解析器。我有以下语法规则:Parsing 为什么它会给我这个错误?Python解析器,parsing,ply,Parsing,Ply,我正在用ply开发一个解析器。我有以下语法规则: def p_maint(p): 'maint : PROGRAMA ID declaraciones' def p_declaraciones(p): '''declaraciones : vacio | declaraciones | tipo ID definicion_vector ";"''' def p_tipo(p): ''
def p_maint(p):
'maint : PROGRAMA ID declaraciones'
def p_declaraciones(p):
'''declaraciones : vacio
| declaraciones
| tipo ID definicion_vector ";"'''
def p_tipo(p):
'''tipo : ENTERO
| FLOTANTE
| CHAR'''
def p_definicion_vector(p):
'''definicion_vector : vacio
| "[" CTE_ENTERO "]" '''
def p_vacio(p):
'vacio : '
但它给了我一个警告:
WARNING: 1 reduce/reduce conflict
WARNING: reduce/reduce conflict in state 8 resolved using rule (maint -> PROGRAMA ID declaraciones)
WARNING: rejected rule (declaraciones -> declaraciones) in state 8
WARNING: Rule (declaraciones -> declaraciones) is never reduced
如何删除此错误?您拥有生产
declaraciones->declaraciones
,这是毫无意义的。(这不会扩大语言范围,也会使语法模棱两可。)
我的猜测是,你的意思是连接两个右手边:
''声明:真空
|声明tipo ID定义向量“;”“”
我该怎么做?谢谢你,真的很有帮助!