def p_expression_plus(p): 'expression : expression PLUS term' p = p + p
def p_expression_minus(p): 'expression : expression MINUS term' p = p - p
def p_expression_term(p): 'expression : term' p = p
def p_term_times(p): 'term : term TIMES factor' p = p * p
def p_term_div(p): 'term : term DIVIDE factor' p = p / p
def p_term_factor(p): 'term : factor' p = p
def p_factor_num(p): 'factor : NUMBER' p = p
def p_factor_expr(p): 'factor : LPAREN expression RPAREN' p = p
def p_error(p): print "Syntax error in input!"
if __name__ == '__main__': lex.lex() yacc.yacc()
while 1: try: s = raw_input('calc > ') except EOFError: break if not s: continue result = yacc.parse(s) print result
Linki zewnętrzne Strona domowa projektu PLY
Kategoria:Generatory parserów