python import ply.lex as lex tokens = ( 'NAME', 'NUMBER', ) t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' t_NUMBER = r'\d+' t_ignore = ' \t' def t_error(t): print("Illegal character '%s'" % t.value[0]) t.lexer.skip(1) lexer = lex.lex() python import ply.yacc as yacc from lexer import tokens def p_expression_plus(p): '''expression : expression '+' expression''' p[0] = p[1] + p[3] def p_expression_number(p): '''expression : NUMBER''' p[0] = p[1] def p_error(p): print("Syntax error at '%s'" % p.value) parser = yacc.yacc() python result = parser.parse("2 + 3")


上一篇:
下一篇:
切换中文