Я хочу сделать один язык в Python, чтобы обучить меня.Но, в условиях, у меня есть ошибка при разборе.Я использую RPLY для этого.
Я сделал эту грамматику:
@self.pg.production('if_statement : IF expression OPEN_CRO NEWLINE statementlist NEWLINE CLOSE_CRO')
def ifexp(p):
return If(p[1], p[4])
@self.pg.production('if_statement : IF expression NEWLINE OPEN_CRO NEWLINE statementlist NEWLINE CLOSE_CRO')
def ifexp2(p):
return If(p[1], p[5])
@self.pg.production('else_statement : ELSE OPEN_CRO NEWLINE statementlist NEWLINE CLOSE_CRO')
def elseexp(p):
return Else(p[3])
@self.pg.production('else_statement : ELSE NEWLINE OPEN_CRO NEWLINE statementlist NEWLINE CLOSE_CRO')
def elseexp3(p):
return Else(p[4])
@self.pg.production('ifelse_statement : if_statement else_statement')
def ifelse(p):
return IfElse(p[0], p[1])
@self.pg.production('ifelse_statement : if_statement NEWLINE else_statement')
def ifelse2(p):
return IfElse(p[0], p[2])
Но если я сделаю этот код:
a = enter("Votre age : ")
a = int(a)
if a >= 18
{
show("Vous etes majeur")
}
show(a)
У меня ошибка в последнем'шоу'.
PS: Если я стираю правила о ifelse_statement, это работает (но у меня не может быть условия if-else.)
Спасибо (если вам нужен другой код, спросите его)