0 Вопрос: Как реализовать оператор IF в PLY

вопрос создан в Thu, May 2, 2019 12:00 AM

Я пишу на новом компьютерном языке, но, похоже, не могу заставить оператор if работать. Когда я запускаю свой код, он выдает синтаксическую ошибку yacc в строках, где написано выражение if, и я не могу понять, в чем дело. Вот как я реализовал оператор if:

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

exp и multipstmnt были определены и работают правильно, когда я попытался реализовать цикл 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]  
    
- 1
  1. вы должны предоставить больше информации /кода. например, что такое р?
    2019-05-02 15: 09: 20Z
  2. Пожалуйста, опубликуйте пример Minimal, Complete и Verifiable , включая ввод это приводит к синтаксической ошибке, сообщению об ошибке и коду, достаточному для того, чтобы мы могли выполнить код на заданном входе и получить ту же синтаксическую ошибку.
    2019-05-02 15: 16: 55Z
  3. @ mohsin: так работает PLY.
    2019-05-02 15: 19: 46Z
0 ответов                              0                         
источник размещен Вот