Python 解析rply中的IF和IF-ELSE语句

Python 解析rply中的IF和IF-ELSE语句,python,parsing,Python,Parsing,我想用Python制作一种语言来训练我。但是,在某些情况下,我在解析时出错。我用RPLY来做这个 我做了以下语法: @self.pg.production('if_语句:if表达式OPEN_CRO新行语句list新行CLOSE_CRO') def ifexp(p): 返回If(p[1],p[4]) @self.pg.production('if_语句:if表达式换行符OPEN_CRO换行符语句list换行符CLOSE_CRO') def ifexp2(p): 返回If(p[1],p[5]) @s

我想用Python制作一种语言来训练我。但是,在某些情况下,我在解析时出错。我用RPLY来做这个

我做了以下语法:

@self.pg.production('if_语句:if表达式OPEN_CRO新行语句list新行CLOSE_CRO')
def ifexp(p):
返回If(p[1],p[4])
@self.pg.production('if_语句:if表达式换行符OPEN_CRO换行符语句list换行符CLOSE_CRO')
def ifexp2(p):
返回If(p[1],p[5])
@self.pg.production('else_语句:else OPEN_CRO新行语句list新行CLOSE_CRO'))
def elseexp(p):
返回Else(p[3])
@self.pg.production('else\u语句:else新行打开\u CRO新行语句列表新行关闭\u CRO')
def elseexp3(p):
返回Else(p[4])
@self.pg.production('ifelse\u语句:if\u语句else\u语句')
def ifelse(p):
返回IfElse(p[0],p[1])
@self.pg.production('ifelse\u语句:if\u语句换行else\u语句')
def ifelse2(p):
返回IfElse(p[0],p[2])
但是如果我做了这个代码:

a = enter("Votre age : ")
a = int(a)
if a >= 18
{
    show("Vous etes majeur")
}

show(a)
我在上次的“秀”中出错了

PS:如果我删除关于ifelse_语句的规则,这就是工作(但我不能有ifelse条件)

谢谢(如果你想要另一个代码,请询问)