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