?? yacc_term1.py
字號(hào):
# -----------------------------------------------------------------------------# yacc_term1.py## Terminal used on the left-hand-side# -----------------------------------------------------------------------------import syssys.tracebacklimit = 0from calclex import tokens# Parsing rulesprecedence = ( ('left','PLUS','MINUS'), ('left','TIMES','DIVIDE'), ('right','UMINUS'), )# dictionary of namesnames = { }def p_statement_assign(t): 'NUMBER : NAME EQUALS expression' names[t[1]] = t[3]def p_statement_expr(t): 'statement : expression' print t[1]def p_expression_binop(t): '''expression : expression PLUS expression | expression MINUS expression | expression TIMES expression | expression DIVIDE expression''' if t[2] == '+' : t[0] = t[1] + t[3] elif t[2] == '-': t[0] = t[1] - t[3] elif t[2] == '*': t[0] = t[1] * t[3] elif t[3] == '/': t[0] = t[1] / t[3]def p_expression_uminus(t): 'expression : MINUS expression %prec UMINUS' t[0] = -t[2]def p_expression_group(t): 'expression : LPAREN expression RPAREN' t[0] = t[2]def p_expression_number(t): 'expression : NUMBER' t[0] = t[1]def p_expression_name(t): 'expression : NAME' try: t[0] = names[t[1]] except LookupError: print "Undefined name '%s'" % t[1] t[0] = 0def p_error(t): print "Syntax error at '%s'" % t.valueimport yaccyacc.yacc()
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -