如何在PLY中实现IF语句

时间:2019-05-02 15:05:02

标签: python parsing ply

我正在写一种新的计算机语言,但似乎无法使if语句正常工作。当我运行代码时,它在编写if语句的行上给我yacc语法错误,我无法理解是什么错误。这是我实现if语句的方式:

def p_stmt_if(p):
    'stmt : IF exp LBRACE multiplestmt RBRACE'
    p[0] = ('if', p[2], p[4])

exp和multiplestmnt已经定义,并且在我尝试实现do while循环时可以正常工作,该循环也供参考:

def p_element_do(p): 
    'stmt : DO multiplestmt while'  
    p[0] = ('DOWHILE', p[2],p[3])    

def p_while(p): 
    'while : WHILE LPAREN exp RPAREN' 
    p[0] = p[3]  

0 个答案:

没有答案