С помощью PLY для достижения анализа результатов "1 + 1 \ n 2 + 2" я думаю, что это два несущественных утверждения, но PLY сократил их, как сделать их неактуальными def p_statement_expr (p): '' 'statement: expression print p [1]
def p_expr_num(p):
'''expression : NUMBER'''
p[0] = p[1]
if "__main__" == __name__:
parser = yacc.yacc(tabmodule="parser_main")
import time
t = time.time()
for i in range(1):
result = parser.parse("1+1 \n 2+2", debug=debug)
# print time.time() - t
# print result
- С помощью PLY для достижения анализа результатов "1 + 1 \ n 2 + 2", я думаю, это два несущественных утверждения, но PLY сократил их, как сделать их неактуальными.
- PLY: PARSE DEBUG START Состояние: 0 Стек:. LexToken (NUMBER, 1,1,0) Действие: Shift и goto состояние 3 Состояние: 3 Стек: NUMBER. LexToken (ADD, '+', 1,1) Действие: Сократить правило [выражение -> ЧИСЛО] с помощью [1] и перейти в состояние 5 Результат: (1) Состояние: 5 Стек: выражение. LexToken (ADD, '+', 1,1) Действие: сдвиг и переход в состояние 9 Состояние: 9 Стек: выражение ADD. LexToken (NUMBER, 1,1,2) Действие: сдвиг и переход в состояние 3 Состояние: 3 Стек: выражение ДОБАВИТЬ НОМЕР. LexToken (ЧИСЛО; 2,2,6) ОШИБКА: Ошибка: выражение ДОБАВИТЬ НОМЕР. LexToken (НОМЕР; 2,2,6)
- Когда сообщается 2 + 2, как я могу реализовать выполнение многострочного оператора и автоматически выполнить следующий код после выполнения?