关键字规则放错位置会怎样
有人把关键字那条正则去掉了词尾边界(写成 let|if|else|while),并且仍然排在标识符前面。输出这样切 let letter = 1; 得到几个词。
KEYWORDS = ("let", "if", "else", "while")
TWO = ("==", "!=", ">=", "<=")
ONE = "+-*/=<>;()"
SRC = 'let rate = 12;\nlet msg = "hi there";\ntotal = rate >= 3;'
import re
BAD = re.compile(r'let|if|else|while|[A-Za-z_]\w*|\d+|"[^"]*"'
r'|==|!=|>=|<=|[+\-*/=<>;()]')
print(len([m.group() for m in BAD.finditer("let letter = 1;")]))
全部评论