?? yacc_nodoc.py
字號:
# -----------------------------------------------------------------------------# yacc_nodoc.py## Rule with a missing doc-string# -----------------------------------------------------------------------------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): 'statement : NAME EQUALS expression' names[t[1]] = t[3]def p_statement_expr(t): 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()
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -