我正在学习韦克斯利韦默编程语言课程 lexer。Python词法分析器令牌优先级规则顺序处理歧义---为什么STRING优先于WORD?
的音符在这里 https://www.udacity.com/wiki/cs262/unit-2#quiz-rule-order
{视频,如果你愿意看,最后40秒。} https://www.udacity.com/course/viewer#!/c-cs262/l-48713810/e-48652568/m-48676965
测验: 当两个标记定义可以匹配相同的字符串,行为我们的词法分析器可能是模糊.....
假设我们有输入字符串
你好,“世界,“
并且我们希望输入字符串产生 WORD STRING 。哪个规则必须持续? ie “......我想让你做的是告诉我哪些函数中的哪一个,这些规则中的哪一个必须最后一个,记住先来的那个会赢得所有的为了打招呼,“世界”要分成一个字和一个字符串。“
def t_WORD(token):
r'[^ <>]+'
def t_STRING(token)
r'"[^"]*"'
........答案是:
T_STRING ,然后 t_WORD
..........我不明白这一点连在多次观看视频后,为什么STRING优先于WORD?
请指教。
非常感谢。